__nonzero__魔术方法未按预期运行

时间:2019-09-19 15:14:33

标签: python class

我有一个正在使用的Python类,我想将该类的某些实例定义为NULL,即它们在条件语句中应评估为false。根据文档,处理此问题的魔术方法是__nonzero__,我在我的课程中实现了该方法。但是现在,我遇到了这种奇怪的行为(X,Y是我的类的实例)。

X.__nonzero__()
Out[33]: False

Y.__nonzero__()
Out[34]: True

if X:
    print("X is True")
else:
    print("X is False")

Out[35]: X is True

if Y:
    print("Y is True")
else:
    print("Y is False")

Out[36]: Y is True

似乎我的__nonzero__方法被忽略了。为什么会这样?

0 个答案:

没有答案