Python 代碼塊


代碼塊

駿馬金龍https://www.cnblogs.com/f-ck-need-u/p/9925021.html

https://www.cnblogs.com/jin-xin/articles/9439483.html

代碼塊可以使得一段python代碼作為一個單元、一個整體執行。

幾種代碼塊

  1. 模塊文件是一個代碼塊
  2. 函數體是一個代碼塊
  3. class的定義是一個代碼塊
  4. 交互式(python idle)的每一個命令行都是一個獨立的代碼塊
  5. 腳本文件是一個代碼塊
  6. 腳本命令是一個代碼塊(python -c "xxx")
  7. eval()和exec()中的內容也都有各自的代碼塊

代碼塊的作用是組織代碼,同時意味着退出代碼區塊范圍就退出了作用域范圍。例如退出函數區塊,就退出了函數的作用域,使得函數內的本地變量無法被函數的外界訪問。

代碼塊緩存機制

緩存機制的前提條件:在一個代碼塊

緩存機制內容:Python在執行初始化對象的時候,回檢查之前有沒有初始化過這個變量,如果有就指向這個內存。

適用對象:int,str,float,bool

交互式代碼塊

注意:小整數可以跨域,因為它在python啟動的時候就在內存中存入了常用的小整數(-5到256)

交互式是一行為一個代碼塊,所以當它執行一句代碼就不知道上面執行了啥

可以理解,1班來了一個人,2班並不知道

x = 1000
y = 1000
x is y

False
1.x=1000,在內存中開辟一個內存存1000,x指向他
2.y=1000,這時候不知道之前代碼運行了啥,於是自顧自的創建了一個內存,存1000,y指向他
3.由於x和y不是指向同一個內存,就是False


x=1000;y=1000
x is y
1.python首先讀取這一行,發現x,y的值都是1000,於是進行了簡單的優化x,y=1000
2.x,y指向同一個內存,所以為True

True

腳本py文件代碼塊

整個py文件是一個代碼塊,但是它的內部還是可以嵌套其他的代碼塊的如(函數,exec()等)

x=1000
y=1000
print(x is y)
def zx():
    c=1000
    v=1000
    print(c is y)
    print(c is v)
zx()

True
False
True

由此可見代碼嵌套代碼塊也是不能相互影響的,函數的代碼塊,並不知道外部發生了什么,這就可以解釋之前作用域的問題了

注意:

函數的聲明過程中,所有涉及到變量的作用域內都不會對i進行賦值,僅僅只是保存了這個i變量名,只有在調用函數的時候才會進行賦值操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM