课堂自我的魔术方法

时间:2017-08-15 18:20:01

标签: python python-3.x metaclass

我正在寻找一种在类实例上调用魔术方法的方法。在我的例子中,我想基于属性调用类的哈希。我找到了使用元类的解决方案,但我无法从元类的方法访问类属性。

class X(type):
    @classmethod
    def __hash__(cls):
        return hash(cls.x)
class Y(metaclass=X):
        x = (1, 2, 3)
assert hash(Y) == hash((1, 2, 3))

我找到了这个帖子:Defining magic methods on classes

1 个答案:

答案 0 :(得分:2)

关闭this.store.dispatch({ type: Form_Data , payload : this.form.value});

@classmethod

您希望class X(type): def __hash__(self): return hash(self.x) class Y(metaclass=X): x = (1, 2, 3) assert hash(Y) == hash((1, 2, 3)) 收到__hash__,这是Y的一个实例。您不希望它收到X