码迷,mamicode.com
首页 > 其他好文 > 详细

布尔测试函数重写

时间:2018-08-28 22:42:46      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:自定义   格式   rabl   表达式   作用   输出   int   elf   false   

布尔测试函数重写
格式:
  __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

 

布尔测试函数重写

标签:自定义   格式   rabl   表达式   作用   输出   int   elf   false   

原文地址:https://www.cnblogs.com/zengsf/p/9551249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!