對于很多初學的同學,對全局和局部變量容易混淆,看看下面給大家的講解相信都應該明白
兩者的差別了。
定義:
全局變量:在子產品内、在所有函數的外面、在class外面
局部變量:在函數内、在class的方法内
下面來看看例子
函數内部調用全局變量
在test函數裡調用全局變量a,看看運作後的結果
<a href="https://s1.51cto.com/oss/201711/13/3f8376ea0b65d3b5f5a220194a9ca838.jpg-wh_500x0-wm_3-wmp_4-s_4037831910.jpg" target="_blank"></a>
運作後都是全局變量的值hello
函數内部使用與全局變量同名的局部變量
a="hello" #全局變量a
def test():
a="hell0 local" #定義了一個局部變量a
b =a #test方法裡之後再調用a時,都是局部的a
print(b+",",a)
test()
這裡在函數test裡面再定義了一個a,這個a就為局部變量了,之後在test裡調用的a全都是局部的a。看看運作結果:
<a href="https://s1.51cto.com/oss/201711/13/9ad522d1daff3fc9b72f1303ea8642ea.jpg-wh_500x0-wm_3-wmp_4-s_3765295846.jpg" target="_blank"></a>
函數内部修改全局變量值
在函數test裡面先聲明用的是全局的a,然後對a進行修改,就等于是修改了全局變量a的值。
看看運作結果:
<a href="https://s1.51cto.com/oss/201711/13/10ba1d3d18cf66a41b0e674ec34f630d.jpg-wh_500x0-wm_3-wmp_4-s_2077495136.jpg" target="_blank"></a>
注:在方法内部的變量是在=号前面的,那肯定是局部變量。如果是第一次出現在=号後
面的,那肯定是調用的全局變量;全局變量可以在函數裡面調用,局部變量隻能在對應的函
數裡面調用,在該函數外面任何地方都無法被調用。
本文轉自niedongri 51CTO部落格,原文連結:http://blog.51cto.com/laomomo/1981193,如需轉載請自行聯系原作者