如果想要在一个函数内部来修改外部变量的值,有下面四种方法:
a>通过返回值赋值 b>使用全局变量 c>修改list或dict对象的内部元素 d>修改类的成员变量
def f(x):
x = 3
print('x', x, id(x))
return x
a = 1
print('原先a的地址:',id(a))
a = f(a)
print('a的地址变了,和函数内x的地址一样', a, id(a))
def func():
global x
x = 10
x = 5
func()
print('函数把变量值修改了', x)
def fun1(m):
m[0] = 20
m = [4, 5, 6]
return m
l = [1, 2, 3]
t = fun1(l)
print(t)
print('l的值变了',l)
fun1(l+[2])
print('l的值没变',l)
局部变量和全局变量
局部变量是函数开头声明的,如果没有声明则是全局变量,在函数内部全局变量(仅限于不可变对象)只可调用,不可修改引用,对于可变对象的全局变量,可以修改内容,不可修改引用.
def fun():
print(b)
print(c)
b[0] = 11111
print(b)
b = [1,2,3]
c = 5
fun()
全局变量与局部变量的识别,注意嵌套函数中的不是全局变量.
def fun():
b = 5
b = b + 4
print('b is:',b)
b = 5
fun()
def fun1(a):
x = 1
def fun2(b):
global x
x = x + 2
print('x is:',x)
fun2(3)
x = 10
fun1(5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)