Python 参数传递
Python的参数传递是赋值传递(passbyassignment),或者叫作对象的引用传递(passbyobjectreference)。在进行参数传递时,新变量与原变量指向相同的对象。下面先来看一下Python中可变和不可变数据类型赋值的例子。
1.不可变数据类型
整型(int)赋值:
a=1
print(id(a))
b=a
print(id(b))
a=a+1
print(id(a))
c=1
print(id(c))
执行结果:
140722100085136
140722100085136
140722100085168
140722100085136
其中id()函数用于返回对象的内存地址。
可以看到b,c都指向了相同的对象,而a=a+1并不是让a的值增加1,而是重新创建并指向了新的值为2的对象。最终结果就是a指向了2这个新的对象,b指向1,值不变。
2.可变数据类型
以列表(list)为例:
l1=[1,2,3]
print(id(l1))#
l2=l1
print(id(l2))
l1.append(4)
print(id(l1))
print(l1)
print(l2)
执行结果:
1933202772296
1933202772296
1933202772296
[1,2,3,4]
[1,2,3,4]
l1和l2指向相同的对象,由于列表是可变(mutable)数据类型,所以l1.append(4)不会创建新的列表,仍然指向相同的对象。由于l1和l2指向相同的对象,所以列表变化也会导致l2的值变化。
可变对象(列表,字典,集合等)的改变,会影响所有指向该对象的变量。对于不可变对象(字符串、整型、元组等),所有指向该对象的变量的值总是一样的,也不会改变。
以上内容为大家介绍了Python参数传递,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/
相关推荐HOT
更多>>python并集是什么意思?
python并集是什么意思?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。以属于A或属于B的元素为元素的集合成为A与B的并集。1、概念...详情>>
2023-11-14 16:44:05python框架是什么
python框架是什么1、说明Python开发框架大大减少了开发者不必要的重复劳动,提高了项目开发效率的同时,还使得创建的程序更加稳定。2、框架类型...详情>>
2023-11-14 14:57:51pythonlstrip()截掉字符
python中lstrip()截掉字符说明1、lstrip()方法用于截掉字符串左边的空格或指定的字符。语法str.lstrip([chars])2、参数分为str、chars。str:原...详情>>
2023-11-14 07:58:15python删除文档的方法
python中删除文档的方法1、delete_one()方法删除文档。delete_one()需要一个查询对象参数。它只删除了第一次出现。2、在删除大量文档时,使用de...详情>>
2023-11-14 06:54:49