我有一个正在使用的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__方法被忽略了。为什么会这样?