【发布时间】:2013-04-22 17:50:21
【问题描述】:
在 Python 中:
-
len(a)可以替换为a.__len__() -
str(a)或repr(a)可以替换为a.__str__()或a.__repr__() -
==是__eq__,+是__add__,等等。
是否有类似的方法来获取 id(a) ?如果没有,是否有任何解决方法可以在不使用 id() 的情况下获取 python 对象的唯一 ID?
编辑: 附加问题:如果不是?有什么理由不定义__id__() 吗?
【问题讨论】:
-
您不能覆盖
id的行为。你想完成什么? -
否,因为 id 表示对象在内存中的位置。
-
@segfolt 在 CPython 中,是的,但 Python 语言本身并不能保证这一点。
-
@BrenBarn 我正在尝试重新定义它的行为或模仿它,为其添加一些功能,最后我想要一个唯一的 id。更重要的是,我想了解它是如何工作的。例如代码在没有内置方法的沙箱中运行,我不想依赖它。
标签: python built-in python-internals