Python中的True和False与bool()函数吗?

首先我们应该知道True和False都是bool类的对象,有关True和False不太清楚的可以参考Python中is和==的区别以及is None 第四部分, 这里不再详细解释。下面我们来看bool函数。

bool([x])

作用:
将x转换为Boolean类型,如果x缺省,返回False,bool也为int的子类
参数x:
任意对象或缺省;大家注意到:这里使用了[x],说明x参数是可有可无的,如果不给任何参数则会返回False。

有两点需要说明:

  1. 如果参与算数运算的话,True相当于1,False相当于0
  2. 上面说是将x转换为bool,其实本质是根据一定的规则返回内建的True或者False对象。
    规则如下:
    • None为False
    • 数字类型(整形,浮点。。。),0为False,其他为True
    • 列表类型(list,tuple,。。。),长度为0的为False,其他为True
    • Map类型(字典),条目个数为0的为False,其他为True
    • 任何其他类型的对象均为True

这个规则是定义在解释器内部的,所以是不可改变的。在Python源代码中的object.c中可以找到该规则的代码。
当使用非bool对象作为if或者while的判断条件时,会自动按照上述的规则进行转换。

原文链接:

  1. Python函数-bool()
  2. Python中如何判断一个对象的布尔值

猜你喜欢

转载自blog.csdn.net/liuweiyuxiang/article/details/89336980
今日推荐