❶ python 如何定義全局變數
接下來,我們把值2賦給x。x是函數的局部變數。所以,當我們在函數內改變x的值的時候,在主塊中定義的x不受影響。在最後一個print語句中,我們證明了主塊中的x的值確實沒有受到影響。
使用global語句
如果你想要為一個定義在函數外的變數賦值,那麼你就得告訴python這個變數名不是局部的,而是
全局
的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函數外的變數賦值的。
你可以使用定義在函數外的變數的值(假設在函數內沒有同名的變數)。然而,我並不鼓勵你這樣做,並且你應該盡量避免這樣做,因為這使得程序的讀者會不清楚這個變數是在哪裡定義的。使用global語句可以清楚地表明python函數變數是在外面的塊定義的。
❷ python 怎麼定義全局變數
你直接定義的localvar是個全局變數;而test()這個函數中會定義(或重綁定)全局變數localvar為6。
可以這樣理解:函數是一個盒子,所有函數體里定義的變數都只能在盒子里存在。但是global關鍵字讓函數可以定義能拿到盒子外的變數(所以,如果變數名字相同,後來的賦值操作就會覆蓋之前的值,這和你在盒子外面的行為是一樣的)。
>>>
def
box():
localvar
=
6
>>>
def
box_with_a_global_var():
global
globalvar
globalvar
=
6
>>>
localvar
=
5
>>>
box()
>>>
localvar
5
>>>
box_with_a_global_var()
>>>
globalvar
=
5
>>>
globalvar
5
❸ python中怎麼定義全局變數
復制代碼
count = 0
def Fuc(count):
print count
count += 1
for i in range(0, 10):
Fuc(count)
復制代碼
結果是:
不是我們想要的結果。
解決之道一——全局變數:
復制代碼
global a
a = 3
def Fuc():
global a
print a
a = a + 1
if __name__ == "__main__":
global a
for i in range(10):
Fuc()print 'hello'
print a
復制代碼
結果:
注意要領:
哪裡需要全局變數,哪裡聲明一下;但是函數千萬不要傳參數, Fuc(a)是不行的。
解決之道二——列表:
復制代碼
a = [3]
def Fuc():
print a[0]
a[0] = a[0] + 1
if __name__ == "__main__":
global a
for i in range(10):
Fuc()
print 'hello'
print a[0]
復制代碼
結果同上
列表可以比肩簡單的實現,學習之。
❹ Python有全局變數嗎和C語言一樣的,在前面先聲明嗎可PYTHON語言不用聲明的,如何來定義全局變數
看作用域來確定變數范圍。
python有全變數,一般跟c裡面是一樣的
bar = 'python'
def foo1():
bar = 'hello' # 這里是局部變數
print(bar) # 打出hello,並且不會影響全局變數bar(全局那個bar仍然是'python')
def foo2():
print(bar) # 打出python # 因為沒有聲明局部變數所以python會搜索全局的bar,這個bar是全局的
def foo3():
global bar # 告訴python下面的bar是全局的
bar = 'hello' # 這里是全局變數
print(bar) # 打出hello,全局的bar已經改為hello不再是python了