布尔数,__nonzero__()

  • 有两个永不改变的值 True 或 False
  • 布尔型是整型的子类,但是不能再被继承而生成它的子类
  • 没有 __nonzero__() 方法的读写的默认值是 True
  • 对于值为零的任何数字或空集(空列表,空元组和空字典等)在 Python 中布尔值都是 False
  • 在数学运算中,Boolean 值的 True 和 False 分别对应与 1 和 0
"""无__nonzero__()"""
class A:
    pass

print 'A is not zero' if A() else 'A is zero'       #output: A is not zero
a = A()
print bool(a)         #output: True
print bool(A)         #output: True
print bool(A())       #output: True

 

"""重载 __nonzero__"""
class B:
    def __nonzero__(self):
        print 'B.__nonzero__()'
        return False

if __name__ == '__main__':
    print 'B is not zero' if B() else 'B is zero'
    b = B()             #output: B.__nonzero__(), B is zero
    print bool(b)       #output: B.__nonzero__(), False
    print bool(B)       #output: True
    print bool(B())     #output: B.__nonzero__(),False

 

 

转载于:https://www.cnblogs.com/Roger1227/archive/2013/05/11/3073538.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值