3 8 Python函式中的區域性變數和全域性變數

2021-07-14 06:18:54 字數 1247 閱讀 5886

你在函式定義中宣告的變數,他們與在函式外使用的其它同名變數沒有任何關係,即變數名稱對函式來說是區域性的。

這叫變數的範圍。所有變數都有它們被宣告的塊的範圍,從名稱定義的點開始。

區域性變數定義舉例:

x =

50def

func

(x):

print

('x等於'

, x)

x =2

print

('區域性變數x改變為'

, x)

func

(x)print

('x一直是'

, x)

輸出:x等於50

區域性變數x改變為2

x一直是50

它是如何工作的:

第一次,我們使用函式體中第一行列印變數x的值,python使用在主塊中,函式定義上宣告的實參。

接下來,我們給x賦值為2,變數為x對我們的函式來說是區域性變數,因此在函式中當我們改變x的值時,在主塊中定義的變數x不受影響。

最後呼叫的print函式,顯示在主塊中定義的變數x,因此證實,它不受在前面呼叫函式的區域性變數的影響。如果你想給在頂層的程式(即未在任何型別的範圍如函式或類之中)定義的變數賦值,那麼你必須告訴python,變數不是區域性的,而是全域性的。

我們使用global語句,沒有global語句賦值給乙個在函式外定義的變數是不可能的。

您可以使用這些在函式外定義的變數的值(假設在函式內沒有同名的變數)。然而,這並不鼓勵,應該避免,因為這使程式的讀者不清楚變數是在**定義的,使用 global 語句就非常清楚,變數定義在乙個最外的塊中。

使用全域性變數的例子:

x =

50def

func

():global x

print

('x的值是'

, x)

x =2

print

('全域性變數x改為'

, x)

func

()print

('x的值是'

, x)

輸出:x的值是50

全域性變數to改為2

x的值是2

它是如何工作的:

global語句用來宣告x是全域性變數,當我們在函式內給x賦值時,它的改變對映到我們在主塊中使用的x的值。

用同樣的global語句可以指定多個全域性變數,比如: global x, y, z。

3 8 Python物件的自省機制

python中比較常見的自省 introspection 機制 函式用法 有 dir type hasattr isinstance 通過這些函式,我們能夠在程式執行時得知物件的型別,判斷物件是否存在某個屬性,訪問物件的屬性。dir dir 函式可能是 python 自省機制中最著名的部分了。它返回...

python中函式的區域性變數

1 def discount price,rate 定義函式名discount,兩個形式引數price和rate sell price price rate return sell price 函式返回售價 price float input please input the price 此處接受輸...

python中的判斷 python中判斷變數的型別

python中判斷變數的型別 python的資料型別有 數字 int 浮點 float 字串 str 列表 list 元組 tuple 字典 dict 集合 set 一般通過以下方法進行判斷 1 isinstance 引數1,引數2 描述 該函式用來判斷乙個變數 引數1 是否是已知的變數型別 引數2...