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依然没有得到修改

猜你喜欢

转载自blog.csdn.net/shaoyanshuyu/article/details/85998063