布尔测试函数重写

布尔测试函数重写
格式:
  __bool__
作用:
  用于bool(obj) 函数取值
  用于if语句的真值表达式中
  用于while 语句的真值表达式中
说明:
  1. 当自定义的类内有 __bool__(self) 方法时,以此方法的返回值作为bool(obj) 的返回值
  2. 当不存在__bool__(self) 方法时,bool(x) 返回__len__(self) 方法的返回值是否为零来测试布尔值
  3. 当不存在__len__(self) 方法时,则直接返回True

class MyList:
    def __init__(self, iterable=()):
        self.data = [x for x in iterable]

    def __bool__(self):
        return any(self.data)      #一个为真就返回true,也可以用all

my = MyList([False ,0,0,1])
print(bool(my))
if my:
    print(my, "True")
else:
    print(my, "False")


输出结果:
True
MyList([False, 0, 0, 1]) True

猜你喜欢

转载自www.cnblogs.com/zengsf/p/9551249.html