Python中参数传递的问题,Python中有可变对象和不可变对象,在参数传递时分为两种情况:
- 对于不可变对象作为函数参数,是值传递;
- 对于可变对象作为函数参数,是引用传递。
def test(arg):
arg += 2
if __name__ == '__main__':
a = 1
test(a)
print("a = %s" % a) #打印 a = 1 ;不可变对象a值并未变成3,传递的是a值,不是引用
def test(arg):
arg.append(2)
if __name__ == '__main__':
a = [1, 2]
test(a)
print("a = %s" % a) # 打印 a = [1, 2, 2] ,可变对象a值被修改,传递的是对象a的引用