什么时候可以自我==无

虚度

我正在查看一个片段if not self:以回答另一个实施的问题__nonzero__()

这让我想知道:除了__nonzero__()返回False或琐碎的局部分配外self = None,还有其他情况是条件if not self成立的吗?

零比雷埃夫斯

根据Python的真值测试文档

可以测试任何对象的真值,用在ifwhile条件中或用作以下布尔运算的操作数。

默认情况下,除非对象的类定义了与该对象一起调用时__bool__()返回False__len__()方法返回零方法,否则该对象被视为true

在您引用的代码中,__nonzero__()Python 2等同于Python 3 __bool__()

因此,__bool__()问题中方法的替代方法可能是:

class Lenny:

    def __len__(self):
        return 0 if self.value == '#' else len(self.children)

注意:这与您的问题标题“何时可以自我==无”无关。平等(无论与None其他任何事物之间的平等)是与真值不同的概念,并由__eq__()方法定义

class Nonelike:

    def __eq__(self, other):
        return other == None

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章