这篇文章主要介绍python中传递引用的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

引用传参一:

>>>a=100#这里的a是不可变类型>>>deftest(a):...a+=a#这个式子有两层含义:1.这里可能是重新定义一个新的变量a,2.也有可能是修改a的值,但由于全局#变量a不能修改,所以此处是重新定义了一个a;...print("函数内:%d"%a)...>>>test(a)函数内:200>>>print(a)100

引用传参二:

>>>a=[100]#这里的a是一个列表,是可变类型>>>deftest(a):...a+=a#由于列表a是可变类型,所以这里是修改a...print("函数内:")...print(a)...>>>test(a)函数内:[100,100]>>>print(a)[100,100]

引用传参三:

>>>a=100>>>deftest(a):...a=a+a#最初为了好理解,所以可以认为a+=a等价于a=a+a,所以这里同引用传参一...print("函数内:%d"%a)...>>>test(a)函数内:200>>>print(a)100

引用传参四:

>>>a=[100]>>>deftest(a):#1.先算=号右边的#2.算出来的结果是[100,100]#3.a=[100,100]#4.让a变量指向了[100,100],即a保存的是[100,100]的引用(内存地址)...a=a+a#对于这种情况,等号左边的a是重新定义的一个量,此时a=a+a与a+=a不一样...print("函数内:")...print(a)...>>>test(a)函数内:[100,100]>>>print(a)[100]

事实上,我们可以通过打印相应变量的地址来帮助我们理解,例如:

a是int类型的情况:

a是列表的情况:

以上是python中传递引用的方法有哪些的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!