Python 同一对象的不同内存地址

Python 同一对象的不同内存地址,python,class,oop,object,Python,Class,Oop,Object,为什么同一个对象有两个不同的内存地址 您的x类内\uuuuu init\uuuuuu应该给出错误。您的代码正在运行,因为您使用的是像syder/jupyter这样的IDE,它存储以前运行的代码的结果。如果重新启动IDE并再次运行相同的代码,将引发错误未定义名称“x” 如果要引用x(类的对象),请使用self获取该引用 >类测试: ... 定义初始值(自身,最大值): ... 打印(自我,“b”) ... >>>x=测试(2) B >>>打印(x,“a”) A. 正

为什么同一个对象有两个不同的内存地址

  • 您的
    x
    类内
    \uuuuu init\uuuuuu
    应该给出错误。您的代码正在运行,因为您使用的是像syder/jupyter这样的IDE,它存储以前运行的代码的结果。如果重新启动IDE并再次运行相同的代码,将引发错误
    未定义名称“x”
  • 如果要引用
    x
    (类的对象),请使用self获取该引用
>类测试:
...     定义初始值(自身,最大值):
...         打印(自我,“b”)
...
>>>x=测试(2)
B
>>>打印(x,“a”)
A.
  • 正如您所看到的,
    x
    self
    内部的
    \uuuu init\uuuu
    都有相同的地址
  • 请参阅以下参考资料:

不,它会给你错误。重新启动spyder或其他ide。仅此代码就应引发名称错误。您的命名空间中是否已有变量
x
(即,在前56次运行中的一次)?它可能正在使用它why@GreenCloakGuy如何克服这一点?也请不要把你的代码图像。其他人必须键入整个内容进行调试。始终将代码粘贴为文本。
>>> 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