专栏名称: 志军
分享Python相关技术干货,偶尔扯扯其它的
今天看啥  ›  专栏  ›  志军

不要再问 "Python 函数中,参数是传值,还是传引用?" 这种没有意义的问题了

志军  · 公众号  · Python  · 2017-03-14 07:41

文章预览

在 C/C++ 中,传值和传引用是函数参数传递的两种方式,学 Python 时,有人喜欢生搬硬套地问类似的问题:“Python 函数中,参数是传值,还是传引用?”。 回答这个问题前,不如先来看两段代码。 代码段1: def foo (arg) :    arg = 2    print(arg) a = 1 foo(a)   # 输出:2 print(a) # 输出:1 看了代码段1的同学可能会说参数是值传递。 代码段2: def bar (args) :    args.append( 1 ) b = [] print(b) # 输出:[] print(id(b)) # 输出:4324106952 bar(b) print(b) # 输出:[ 1 ] print(id(b))   # 输出:4324106952 看了代码段2,这时可能又有人会说,参数是传引用,那么问题来了,参数传递到底是传值还是传引用或者两者都不是? 为了把这个问题弄清楚,先了解 Python 中变量与对象之间的关系。 变量与对象 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览