[Python] 函数的值传递和引用传递

Python中的参数传递方式

值传递:指的是实参类型为不可变类型(数字、字符串、元组);
引用传递(或叫地址传递):指的是实参类型为可变类型(列表,字典,set 集合,np矩阵,torch.Tensor矩阵)

函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;
函数参数进行引用传递后,若形参的值发生改变,实参的值也会一同改变。

Python 实例

def fun1(num, dict_, list_):
    print('形参ID: ', id(num), id(dict_), id(list_))
    num += 1
    dict_[str(num)] = num
    list_.append(num)


if __name__ == '__main__':
    print()
    num = 1
    a = {}
    b = []
    print('原始ID: ', id(num), id(a), id(b))
    for i in range(5):
        print('实参ID: ', id(num), id(a), id(b))
        print('i:%i,\n' % i, '函数执行前 num: ', num, 'a: ', a, 'b: ', b)
        fun1(num, a, b)
        print('函数执行后 num: ', num, 'a: ', a, 'b: ', b, '\n')
        

Reference

https://blog.csdn.net/weixin_50727642/article/details/122772700

posted @ 2022-11-22 10:37  NetUSA  阅读(109)  评论(0)    收藏  举报