Python类对象的内存地址

时间:2017-06-24 01:54:32

标签: python python-3.x class memory-address

几个月来一直是读者,但这是我的第一篇文章(对改进帖子的反馈持开放态度)。我已经完成了Python和OOP的基础知识,并希望更好地理解内存:

class Foo(): pass


class Bar():

    def __repr__(self):
        standard_ouput = f'<{__name__}.{type(self).__name__} object at {hex(id(self))}> (override)'

        return standard_ouput


f = Foo()
b = Bar()

print(Foo())
print(f)
print(Bar())
print(b)

上面的代码输出了一些变体:

<__main__.Foo object at 0x1079973c8>
<__main__.Foo object at 0x107997358>
<__main__.Bar object at 0x1079973c8> (override)
<__main__.Bar object at 0x107997400> (override)

1)。为什么Foo()Bar()都指向相同的内存地址?这是否与覆盖__repr__的{​​{1}}方法有关?

2)。我上面提到Q1的方式是否有意义(试图在CS术语上做得更好)?

0 个答案:

没有答案