【问题标题】:Different memory address for same object同一对象的不同内存地址
【发布时间】:2019-11-21 02:13:03
【问题描述】:

为什么我会为同一个对象获得两个不同的内存地址?

【问题讨论】:

  • 不,它应该给你错误。重新启动您的 spyder 或任何 ide。
  • 仅此代码就应该引发 NameError。
  • 您的命名空间中是否已经有一个变量 x(即在您执行的前 56 次运行中)?这可能就是为什么
  • @GreenCloakGuy 如何克服这个问题?
  • 另外请不要放你的代码图片。其他人必须输入整个东西才能调试。始终将代码粘贴为文本。

标签: python class oop object


【解决方案1】:
  • 你的x 在类__init__ 应该给出错误。您的代码正在运行,因为您正在使用像 syder/jupyter 这样的 IDE,它存储以前运行代码的结果。如果您重新启动 IDE 并再次运行相同的代码,则会引发错误 name 'x' is not defined
  • 如果您想引用 x(类对象),请使用 self 获取该引用。
>>> class test:
...     def __init__(self, max):
...         print(self, "b")
...
>>> x = test(2)
<__main__.test object at 0x0000016A080052C8> b
>>> print(x,"a")
<__main__.test object at 0x0000016A080052C8> a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多