1. 程式人生 > >Python函式對變數的作用遵守如下原則

Python函式對變數的作用遵守如下原則

n=1
def func (a,b):
c=a*b
return c
s=func(“knock~”,2)
print© // c定義的是區域性變數,不可全域性呼叫
錯誤

n=1
def func (a,b):
n=b #這個n雖說是定義的是全域性變數,但是func有自己記憶體空間,把他理解成了區域性變數。
return a*b
s=func(“knock~”,2)
print(s,n)
n變成了區域性變數

n=1
def func (a,b):
global n #宣告這個n是全域性變數n
n=b
c=a*b
return c
s=func(“knock~”,2)
print(s,n)
合適

ls=[] #ls是全域性列表變數
def func (a,b):
ls.append(b)
return a*b
s=func(“knock~”,2)
print(s,ls)
// 對於列表型別,函式可以直接使用全域性列表而不需要採用global進行宣告
but
如果func()函式內部宣告一個真實建立過且名稱為ls的列表,則func()函式將操作該列表而不會修改全域性變數,例如,下個例項:

ls=[] #ls是全域性列表變數
def func (a,b):
ls=[]
ls.append(b)
return a*b
s=func(“knock~”,2)
print(s,ls)
全域性變數ls依然沒有得到修改