Python中函数参数传递问题
这两个图片是老师给的,之间的原理能懂,我觉得两个print()里面都应该是修改之后的啊,第一print为什么是修改之前的,上面不已经对可变列表地址修改了吗,那print(...
这两个图片是老师给的,之间的原理能懂,我觉得两个print()里面都应该是修改之后的啊,第一print为什么是修改之前的,上面不已经对可变列表地址修改了吗,那print()里面也应该是修改后的啊
展开
展开全部
对于可变参数默认是引用传值, 但是不能去修改它的指向, 一旦修改就是按值传递.
# coding=utf-8
def f(a):
a = [0]
print(a)
if __name__ == '__main__':
a = [1, 2, 3]
f(a)
print(a)
上面的代码对a重新赋值, 试图改变a的指向, 那么这时的a就是一个新的局部变量, 而非全局变量a
像a[0] = 100, a.append(0)的操作不会触发上述规则, 和你的输出一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询