资讯专栏INFORMATION COLUMN

Python 赋值的一般含义是引用

endless_road / 1609人阅读

摘要:在困惑的查找答案过程中发现了表示的是对应的内存地址案例请输入和比较输出的结果比较发现和是同一个同理和是一样的此处赋值改变了的值,不再指向而是指向或者,在中都只是一个名字,来指向一个值比如不论字符类型此处代码中指向打印出来是所以或者以及效果是

在困惑的查找答案过程中发现了id()
id() 表示的是对应的内存地址

案例1:

>>> a=1
>>> b=2
>>> id(1)
39355320
>>> id(a)
39355320
>>> id(b)
39355308
>>> b=3
>>> id(b)
39355296
>>> 

请输入id(2)和id(3),比较输出的结果

比较发现:
a=1 id(a)和id(1)是同一个
同理id(b)和id(2)是一样的
b=3 此处赋值改变了id(b)的值,不再指向 2 而是指向 3
a或者b,在Python中都只是一个名字,来指向一个值 比如1 2(不论字符类型)

>>> a=1
>>> b=2
>>> list1=[a,b]
>>> print list1
[1, 2]
>>> b=3
>>> print list1
[1, 2]
>>>

此处代码中 b=2 指向39355308 打印出来是2 所以print list[1]或者print b
以及print 2 效果是等同的
但是print list1[1]是直接指向2的这个值 39355308
print b 是间接指向2的这个值 39355308
b是一个名字 引用这个值
所以当重新赋值 b=3
print b b作为一个名字 引用的是3的值 b指向一个新的值——3的值
print list1[1]得到的依旧是 39355308

而print list1 是print list1[0] 和print list1[1] 的合集
所以输出结果依旧是[1,2] 而不是 [1,3]

重新定义 list1=[a,b] 才会输出[1,3]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44317.html

相关文章

  • python 动态类型

    摘要:动态类型在我们接触的对象中,有一类特殊的对象,是用于存储数据的。会自动将没有引用指向的对象销毁,释放相应内存。这种对象类型,称为可变数据对象,词典也是这样的数据类型。比如说动态类型是的核心机制之一。 Python进阶09 动态类型 动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量...

    chenjiang3 评论0 收藏0
  • 对比 C++ 和 Python,谈谈指针与引用

    摘要:本文基于与,讨论了中与指针及引用相关的一些行为。在这些场合中,移动构造函数和移动赋值操作通过右值引用接管被移动对象。而由于对象从构造函数而来,至此我们可知的构造函数将构造匿名对象,且返回此对象的一个指针。 花下猫语:本文是学习群内 樱雨楼 小姐姐的投稿。之前已发布过她的一篇作品《当谈论迭代器时,我谈些什么?》,大受好评。本文依然是对比 C++ 与 Python,来探讨编程语言中极其重要...

    tracy 评论0 收藏0
  • [零基础学python]编写类之一创建实例

    摘要:接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。故这个函数称为构造函数,担负着对类进行初始化的任务。 虽然已经对类有了一点点模糊概念,但是,阅读前面一讲的内容的确感到累呀,都是文字,连代码都没有。 本讲就要简单多了,尝试走一个类的流程。 说明:关于类的这部分,我参考了《Learning Python》一书的讲解。 创建类 创建类的方法比较简单,如下: ...

    mozillazg 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<