在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程式中,建立,改變,查詢變數名的時候,都是在乙個儲存變數名的空間中進行,我們稱之為命名空間,也被稱之為作用域.簡單來說,變數的作用域就是指變數可以使用的範圍 程式的變數並不是在任意的位置都可以訪問,訪問許可權取決於這個變數是在 賦值的...