python中可用于布尔测试的,如何在Python中使用布尔值?

Python中的布尔值是整数的子类。布尔构造函数-

bool

。bool类继承自int类。

issubclass(bool,int) // will return True

isinstance(True,bool) , isinstance(False,bool) //they both True

True

False

是单例对象。它们将在应用程序的整个生命周期内保持相同的内存地址。当您键入

True

时, python内存管理器将检查其地址并获取值1。对于

False

, 其值为0。

您可以使用

is

(标识)或

==

(等于)运算符将任何布尔表达式与

True

False

进行比较。

int(True) == 1

int(False) == 0

但是请注意,

True

和1是不同的对象。您可以检查:

id(True) == id(1) // will return False

您也可以轻松看到

True > False // returns true cause 1>0

任何整数运算都可以对布尔值进行运算。

True + True + True =3

Python中的所有对象都有一个关联的真值。每个对象都有一个

True

值, 除了:

没有

说谎的

任何数字类型均为0(0. 0.0. 0+0j等)

空序列(列表, 元组, 字符串)

空的显示类型(字典, 馆藏等)

一个实现

__bool__

__len__

方法并返回

False

0

的自定义类。

Python中的每个类都有由特殊实例方法定义的真值:

__bool__(self) OR

__len__

当您调用

bool(x)

时, python实际上

x.__bool__()

如果

x

实例没有此方法, 它将执行

x.__len__()

如果不存在, 则默认值为

True

例如, 对于类

int

, 我们可以如下定义

bool

:

def __bool__(self):

return self != 0

对于布尔值(100),

100 !=0

将返回

True

。所以

布尔值(100)==true

您可以轻松检查

bool(0)

是否为

False

。这样, 对于int类的实例, 只有0将返回False。

另一个例子=bool([1,2,3])

[1,2,3]

没有特定的方法

__bool__()

, 但是具有

__len__()

, 并且由于其长度大于0, 它将返回

True

。现在您可以了解为什么空白列表返回

False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值