python 给函数传递一个自定义的类的实例 , 是传值还是传址?python不允许程序员选择采用传值还是传引用 。Python参数传递采用python元组函数传值的肯定是“传对象引用”python元组函数传值的方式 。这种方式相当于传值和传引用python元组函数传值的一种综合 。如果函数收到的是一个可变对象(比如字典或者列表)的引用python元组函数传值 , 就能修改对象的原始值--相当于通过“传引用”来传递对象 。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用python元组函数传值,就不能直接修改原始对象--相当于通过“传值'来传递对象 。
原文来自:
Python元组常用操作小技巧所以这篇文章,我们先来回顾和总结Python数据结构里常用操作 。Python中常见的数据结构可以统称为容器(container) 。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器 。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在这篇文章的讨论范围内 。
在此,我们先从元组开始说起 。
元组区别于列表的显著特征之一就是它不能被修改 , 但其另外一个作用就是用于没有字段名的记录[1]。因为后者经常被忽略 , 我们先来看看元组作为记录的作用 。
使用括号就可以定义一个元组 。元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置 。正是这个位置信息给数据赋予了意义 。下面的例子中 , 元组就被当作记录加以利用:
输出为:
上述for循环中的操作提取了元组中的元素 , 也叫作拆包(unpacking) 。平行赋值是对元组拆包很好的应用,示例如下:
还有一个经典而优雅的应用是交换变量的值:
用* 运算符把一个可迭代对象拆开作为函数的参数,例如Python的内置函数pmod接收两个数字类型的参数,返回商和余数 。以下范例将使用 * 将元组传入函数 。
输出为:
有些函数有多个返回值,将其赋给一个变量时,变量类型即是元组:
输出为:
zip是Python的内置函数 , 能够接收两个或多个序列,并组成一个元组列表,在Python3中会返回一个迭代器 , 如下所示:
输出为:
元组当然也支持一些常规操作,如对于元组a = (1, 'y', 5, 5, 'x') :
上述内容不仅涵盖了元组的基本操作,同时也结合了实际工作中常搭配使用的其他函数、运算符等 。在回顾这些知识时主要参考了两本经典的Python编程书籍:《流畅的Python》和《像计算机科学家一样思考Python》,有兴趣的朋友可以深入阅读!
希望这篇文章对你有帮助,下回将总结Python列表的使用技巧 。
[1]《流畅的Python》:
python中如何将函数的运算结果传出来作为函数参数使用?首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立抄变量与对象的关联实现的 。
对于你的代码:
执行 d = 2时,你在__main__里创建了d,并让它指向2这个整型对象 。
执行函数add(d)过程中:
d被传递给add()函数后,在函数内部,袭num也指向了__main__中的百2
但执行num = num + 10之后,新建了对象12,并让num指向了这个新对象——12 。
如果你明白函数中的局部变量与__main__中变量的区别,那么很显然,在__main__中,d仍在指着2这个对象,它没有改变 。因此,你打印d时得到了2 。
如果你想让输出为12,最简洁的办法是:度
在函数add()里增加return num
调用函数时使用d = add(d)
代码如下:
def add(num):
num += 10
return num
推荐阅读
- 视频修改需要什么设备,视频修改怎么收费
- mongodb图形管理界面,mongodb页面
- 不要网络的蓝球游戏的简单介绍
- 关于postgresql字段注释的信息
- python函数画五环 python怎么画环形
- 东南大学js开头的学院,东南大学代号及名称
- redis怎么读主库,redis如何读
- 挡风被直播文案,直播封面文案
- 学java书代码 java编程入门书籍