【问题标题】:how do u define an object inside of python interms of is statement [duplicate]你如何根据is语句在python内部定义一个对象[重复]
【发布时间】:2016-05-27 12:04:58
【问题描述】:

这是否意味着 x 和 y 是同一个对象,而不仅仅是它们基本连接的值? 或者我的'is'语句是错误的

>>> x=[2,8]
>>> y=x
>>> x.reverse()
>>> y
[8, 2]
>>> y is x
True

【问题讨论】:

  • nedbatchelder.com/text/names1.html 是一个很棒的 pycon 演示文稿(或者只是阅读它;博客文章包含视频中的所有内容),它告诉每个人绝对需要了解 Python 中的名称才能真正理解该语言。
  • @Wooble 会马上做,谢谢推荐^^

标签: python


【解决方案1】:

您在所有方面都完全正确,它们是同一个对象,这就是is 的意思。 = 不会复制。复制列表的一种方法是使用y = list(x)

【讨论】:

【解决方案2】:

没错,它们是完全相同的对象——它们共享相同的内存地址。如果您修改一个,则同时修改它们,如下所示:

x = [2, 8]
y = x
x.reverse()

print(y) # [8, 2]

如果您不想要这个,您可以使用y = x[:] 进行复制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2020-05-03
    • 2014-05-21
    • 2014-09-13
    • 2021-07-20
    • 2016-05-27
    • 1970-01-01
    相关资源
    最近更新 更多