Python中 传递值 和 传递引用 的区别解析
作者:木子昭 发布时间:2023-12-26 07:05:22
标签:python,传递值,传递引用
对于不可变类型传递值(不会影响原数据)
不可变类型
对于可变类型传递引用(会影响原数据)
不可变类型传递引用
python3不可变类型
Number(数字)
String(字符串)
Tuple (元组)
python3可变类型
List(列表)
Dictionary (字典)
Sets(集合)
参数传递的思考
我们声明的变量名可以看做便签
为变量名赋值的操作可以看做将标签贴到"值"的表面(值可以是可变类型,和不可变类型)
以链表中的节点对象为例(实例化的节点对象为不可变类型, 但对象中的属性是可变的)
链表对象
class NodeList(object):
def __init__(self, val):
self.val = val
self.next = None
# 遍历链表
def traverse_nodes(head):
tmp = head
while tmp:
print("节点id为:", id(tmp), "节点的值为:", tmp.val, )
tmp = tmp.next
# 创建链表
def create_node_list():
head = NodeList(0);
left_p = head
print("头节点id:",id(head), "当前节点id:",id(left_p), "当前节点值:", left_p.val)
left_p.next = NodeList(1);
left_p = left_p.next
print("头节点id:",id(head), "当前节点id:",id(left_p), "当前节点值:", left_p.val)
left_p.next = NodeList(2);
left_p = left_p.next
print("头节点id:",id(head), "当前节点id:",id(left_p), "当前节点值:", left_p.val)
left_p.next = NodeList(3);
left_p = left_p.next
print("头节点id:",id(head), "当前节点id:",id(left_p), "当前节点值:", left_p.val)
return head
def main():
# 创建链表
print("==>创建链表函数中:")
head = create_node_list()
print("==>在遍历函数中:")
traverse_nodes(head)
if __name__ == '__main__':
main()
总结
以上所述是小编给大家介绍的Python中 传递值 与 传递引用 的区别解析网站的支持!
来源:https://www.jianshu.com/p/f03280bce377
0
投稿
猜你喜欢
- python代码换行就是每行后面加个 \举个栗子:time = "2017"print "one"
- python简单实现最大似然估计1、scipy库的安装wim+R输入cmd,然后cd到python的pip路径,即安装:pip instal
- 当您使用FILESYSTEMOBJECT(fso)对象获得某个目录下的文件列表的时候,你有没有发现无法控制它们的排序方式,比如按照名字排序,
- 业务需求 识别验证码图片中的数字信息,用pyt
- 前言当我们编写任何程序时,都会遇到一些错误,会让我们有挫败感,所以我有一个解决方案给你。 今天在这篇文章中,我们将讨论错误类型error:
- 早上一开Google Reader,发现已经全部被Silverlight 3的消息占领了,基本上都来自于Silverlight
- Python可以使用open函数来实现文件的打开,关闭,读写操作;Python3中的open函数定义为:open(file, mode=
- Acunetix Web Vulnerability Scanner 是一款国外产的及其优秀的扫描工具,可以帮忙挖掘网站内的诸多漏洞,包括常
- CSS 中的 position 属性可以很容易的将指定的元素定位到理想的位置。但在使用这一属性时需要注意,尤其是在表格元素中。为了说明此问题
- 前言python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时
- 1. python中创建新的csv文件(1). 使用csv.writer()创建:代码如下:import csvheaders = [
- 阅读上一篇教程:WEB2.0网页制作标准教程(9)第一个CSS布局实例如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇到必须对齐
- 和单选框一样,许多新手在用 Javascript 验证表单(form)中多选框(checkbox)的值时,都会遇到问题,原因是 checkb
- 本文实例讲述了PHP数据库表操作的封装类及用法。分享给大家供大家参考,具体如下:数据库表结构:CREATE TABLE `test_user
- 很多时候,希望能够在 HTML 中使用空格排版。但浏览器在解析 HTML 时,会把连续的空格解析成一个,所以我们会使用
- Overview这篇博客内容将包括对XML文件的解析、追加新元素后写入到XML,以及更新原XML文件中某结点的值。使用的是python的xm
- 本文实例为大家分享了js实现放大镜效果的具体代码,供大家参考,具体内容如下该放大区域用背景图片放大<!DOCTYPE html>
- 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。几天
- 这方面我还是一个freshman,不过看了一些文章,经过一些实践后也算是有了一些想法。希望如果有这方面的前辈路过的话,能不吝指教。首先,作为
- javascript版 俄罗斯方块(Russian box)小游戏,喜欢的朋友可以玩玩。对源代码感兴趣的朋友也可以研究一下。玩法介绍:可以输