bool()函数和python的真值测试

2019年11月19日 / 2次阅读 / Last Modified 2019年11月19日
内置函数

python有一个内置函数,bool(),我写了这么多python代码,居然一次没用过:

>>> bool()
False

这个bool函数,不带任何参数时,返回False。

>>> bool(1)
True
>>> bool('1')
True
>>> bool([1])
True
>>> bool((1))
True
>>> 
>>> bool(0)
False
>>> bool('0')
True
>>> bool((0))
False
>>> bool([0])
True

现在问题来了,一个python对象,放入bool函数中作为参数,返回False或True的依据是什么呢?这就涉及到python的真值测试规则(Truth Value Test)

  • 默认情况下,一个存在的对象的真值都是True,除非这个对象定义了返回False的__bool__魔法函数,或者返回0的__len__函数;
  • 常量None和False,就是False;
  • 各种0的数字类型,0,0.0,0j,Decimal(0),Fraction(0,1),都是False;
  • 各类空序列或集合,‘’,(),[],{},set(),range(0),都是False;

bool()函数用的少,我感觉有个原因是,我们写代码太直接,判断0,就是if 0 == 0,判断空字符串,就是 if len(str) == 0。。。其实可以换一个写法,用bool函数的真假来判断,有的时候可能会增加代码的可读性。这个就要具体问题具体分析了,不过,别忘了python的这个bool()内置函数。

-- EOF --

本文链接:https://www.pynote.net/archives/1525

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top