[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
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)