Python中變數作用域

2021-09-21 02:01:20 字數 1317 閱讀 7045

在def中定義的變數都是區域性變數

def

foo():

a =200print

(a)def

fooo()

: a=a+

300print

(a) fooo(

)

foo(

)

執行得到:

unboundlocalerror: local variable 'a' referenced before assignment
也就是說在函式fooo中並沒有設定變數a,從而無法進行運算

1.第一次修改

def

foo():

global a

a=200print

(a)def

fooo()

: a=a+

300print

(a) fooo(

)foo(

)

執行得到:

200--

----

----

unboundlocalerror: local variable 'a' referenced before assignment

在這次的修改中我們在函式foo中對變數a進行global的宣告,但是在函式fooo中仍無法對a的值進行修改,這是因為對a進行宣告後,函式fooo只對a有使用權,而沒有修改權,也可以看下面的例子

a=

200def

foo():

a=a+1;

print

(a)foo(

)

unboundlocalerror: local variable 'a' referenced before assignment
放在外面的a是全域性變數,此時foo對a有使用但是沒有修改權,但是在同一層級上則可以做修改

a=

200def

foo():

print

(a)def

fooo()

:global a

a=a+

300print

(a) fooo(

)foo(

)

執行得到:

200

500

在fooo中對a做宣告後,提高了fooo對變數a操作的許可權

python中變數作用域

塊級作用域 if true a 10 變數沒有塊級作用域 print a 區域性作用域 只能在某一時刻才能使用 全域性作用域 num 20 def show 全域性變數在函式內部使用時,不能更改,num 10是你自己定義的變數 num 10 print num show print num 若更改需...

python中for迴圈變數作用域

在講這個話題前,首先我們來看一道題 1 def foo return lambda x x i for i in range 1 5,2 print f 3 for f in foo 夥伴們,你們認為這裡產生的結果是什麼呢?我們再來看下這題的變體 2 def foo functions for i ...

Python中變數的作用域

3 變數名解析legb法則 4 關鍵字global 在python程式中,建立,改變,查詢變數名的時候,都是在乙個儲存變數名的空間中進行,我們稱之為命名空間,也被稱之為作用域.簡單來說,變數的作用域就是指變數可以使用的範圍 程式的變數並不是在任意的位置都可以訪問,訪問許可權取決於這個變數是在 賦值的...