布尔测试函数重写
Posted zengsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布尔测试函数重写相关的知识,希望对你有一定的参考价值。
布尔测试函数重写
格式:
__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
以上是关于布尔测试函数重写的主要内容,如果未能解决你的问题,请参考以下文章