Python对象应假装为None或为空

时间:2019-05-21 16:54:59

标签: python object magic-methods

我有一个具有某些值的python类。此类只是包装类,用作另一个类对象内的数据容器。

当我在python中有任何变量时,只需做一下就可以检查它是否为空(或就此而言等于False)

my_variable = "something" 
if my_variable
>>> True

my_variable = None # or False, or 0 or whatever equals False
if my_variable
>>> False

到目前为止,一切正常。但是我想让我的类表现完全相同,但前提是某个属性具有某个值,否则它应该返回True。这可能吗,还是python仅检查my_variable是否绑定到某物?

class Test(object):
    def __init__(self, isTrue):
        self.isTrue = isTrue

A = Test(True)
B = Test(False)

if A
>>> True

if B
>>> False

1 个答案:

答案 0 :(得分:3)

听起来像您在寻找__bool__(对于Python 2来说是__nonzero__)。

class Test(object):
    def __init__(self, isTrue):
        self.isTrue = isTrue
    def __bool__(self):
        return self.isTrue