python基本语法验证_《Python 语法浅析:真值校验的标准》

基础语法

1、任何对象都可以进行逻辑值的检测

2、一个对象在默认的情况下均被视为真值,除非以下两种情况:

①、该对象被调用时所属类,定义了 __bool__() 方法且返回 False

②、或者定义了 __len__() 方法且返回 0

3、以下内置对象会被视为假值:

①、被定义为假值的常量: None 和 False

②、任何数值类型的零: 0、 0.0、 0j、 Decimal(0) 、 Fraction(0, 1)

③、空的序列和多项集: ''、 ()、 []、 {}、 set()、 range(0)

4、产生布尔值结果的运算和内置函数总是返回 0 或 False 作为假值,1 或 True 作为真值

(例外:布尔运算 or 和 and 总是返回其中一个操作数)

PS: 布尔运算符 —— and、or 都是短路运算符。 因此对于 and 来说,只有一个参数为真值时,才会对第二个参数求值。

PS: 布尔运算符 not 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b) 而 a == not b 会引发语法错误。

举例代码

In [1]: bool(None)

Out[1]: False

In [2]: bool({})

Out[2]: False

In [3]: bool(range(0))

Out[3]: False

# 任何对象都可以进行逻辑值的检测、默认情况下会被视为 真值

In [4]: class Test(object): pass

In [5]: bool(Test())

Out[5]: True

# 除非:①、定义了 __bool__() 方法且返回 False

In [6]: class Test(object):

...: def __bool__(self):

...: return False

...:

In [7]: bool(Test())

Out[7]: False

# ②、定义了 __len__() 方法且返回 0

In [8]: class Test(object):

...: def __len__(self):

...: return 0

...:

In [9]: bool(Test())

Out[9]: False

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值