天天看點

python變量的作用域

#6.2變量的作用域,是變量的可通路範圍,也稱為命名空間。在第一次
#給變量指派時,python建立變量。第一次給變量指派的位置決定了變量的作用域。
#作用域類型
#一個程式通常包含了變量、函數和其他語句。變量和函數涉及可通路範圍。一個程式中的變量和函數
#要麼在目前檔案中定義,要麼就是python預先定義好。函數和程式檔案劃分了不同的作用域。
#在同一個作用域中。變量名是唯一的。在不同的作用域中,相同的變量名也表示了不同的變量。
#在pyton中作用域範圍可以分為内置作用域、檔案作用域、函數嵌套作用域和本地作用域。
#内置作用域和檔案作用域被稱為全局作用域。
#函數嵌套作用域有時,也稱為本地作用域。
#根據作用域的範圍大小,作用域外部的變量和函數,可以直接作用在作用域内使用;相反,作用域内的變量
#不能在作用域外直接使用。
#根據作用域範圍,通常将變量名分為兩種:全局變量和本地變量。
#a 全局變量;
a =10
#參數b,是函數add内的本地變量。
def add(b):
    #c是函數add内的本地變量,a是函數外部的全局變量。
    c=a+b
    return c
#調用函數;
print(add(5))
#在函數運作的過程中,a add,是全局變量。b c是局部變量。内置函數print()
#作用域外的變量和作用域内的變量名稱相同時,遵循本地“優先”原則,此時外部的作用域被屏蔽
#---作用域隔離原則。
#例如:
a=10
def show():
    #指派,建立本地變量a
    a=1000
    print('int show():a=',a)
#調用函數,觀察輸出結果會發現,本地變量屏蔽了全局變量.
show()

#将上面的函數稍作修改:
#指派,建立全局變量a
a=10
def show():
    #在此先列印a的值,看是否會使用全局變量。
    global a
    print("a=",a)
    #指派,建立本地變量.
    a=100
    print("a=",a)
#調用函數;
show()