我定义类MyClass()
import random
class MyClass():
def __init__(self, value):
self.value = value
def __hash__(self):
return random.randin(1, 10)
x = MyClass()
我知道,在我声明x = MyClass()
之后,__init__
是自动调用的。但是__hash__
呢?它在没有被x.__hash__()
显式调用的情况下工作吗?
每个以__
开头的方法是自动调用的还是程序决定何时调用它们?
为了找到答案,我查阅了许多文件,但都没有成功。在
谢谢你的回答!在
来自Python文档:
参考号:https://docs.python.org/3/reference/datamodel.html#object.__hash__
另外,请不要从\uuHash_Uu()返回随机数。在
否,
__hash__
不会自动调用。看看the documentation for this method:因此,如果有人
hash(x)
,将调用此方法。在顺便说一句,返回一个随机数是个坏主意:
相关问题 更多 >
编程相关推荐