首页 > 代码库 > Python 中函数传参是传值还是传引用
Python 中函数传参是传值还是传引用
直接简单的例子:
1 from ctypes import * 2 import os.path 3 import sys 4 5 def test(c): 6 print "test before " 7 print id(c) 8 c+=2 9 print "test after +"10 print id(c)11 return c12 13 def printIt(t):14 for i in range(len(t)):15 print t[i]16 17 if __name__=="__main__":18 a=219 print "main before invoke test"20 print id(a)21 n=test(a)22 print "main afterf invoke test"23 print a24 print id(a)
结果如下:
>>> main before invoke testtest before test after +main afterf invoke test39601564
结论:
python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值‘来传递对象。
Python 中函数传参是传值还是传引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。