python 函数传参问题

Python中参数传递的问题,Python中有可变对象和不可变对象,在参数传递时分为两种情况:
  1. 对于不可变对象作为函数参数,是值传递;
  2. 对于可变对象作为函数参数,是引用传递。
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的引用


猜你喜欢

转载自blog.csdn.net/xin_yun_jian/article/details/80809030