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中ndarray与list转换的方法
python中ndarray与list转换的方法在python数据类型中,list元素可以任意类型组合,而ndarray元素类型必须相同,但是ndarray可以更方便的对多维...详情>>
2023-11-10 08:51:14python中OrdereDict如何使用?
python中OrdereDict如何使用?我们在对数据进行处理时,如果能够使它们保存顺序的排序,那么用起来会非常的便利。不过字典本身就是没有顺序的,...详情>>
2023-11-10 07:05:00python中如何使用scipy.fftpack模块计算快速傅里叶变换?
python中如何使用scipy.fftpack模块计算快速傅里叶变换?在编程中,快速傅里叶变换是工程中非常有价值的一类算法,它可以将时域和频域的信号相互...详情>>
2023-11-10 05:50:23zip()函数如何在python中遍历多个列表?
zip()函数如何在python中遍历多个列表?下面我们就python中zip的说明、语法、使用注意点进行讲解,然后带来遍历多个列表的实例。1、说明zip()函...详情>>
2023-11-10 05:38:33热门推荐
python concat函数有何用法?
沸python里函数装饰器怎么使用?
热如何实现python中的continue语句?
热python中的冒泡排序是什么?
新python中str函数是什么
如何使用python实现项目进度显示?
python中ndarray与list转换的方法
python复制文件的方法整理
Python中numpy数组如何添加元素
python有几种可视化图形库?
python中xlwings是什么?
python上下文管理器的基本介绍
Python自动化测试基础必备知识点一
python中OrdereDict如何使用?