如何缩短if语句中的“ is not None”

时间:2018-10-10 17:24:21

标签: python python-3.x if-statement pep8

在Python3中,PEP8中的Truth Value Testing表示对于if A is None:,可以将其转换为if not A:。像这样,由于下面的代码看起来如此杂乱且难以一次掌握,因此它可以用一种或另一种方式表达得更简洁吗?

if A is not None and B is not None and C is not None:

2 个答案:

答案 0 :(得分:3)

any()和all()可以与理解一起使用,以在这些情况下提供帮助。

if all([x is not None for x in [A,B,C]]):

答案 1 :(得分:2)

我同意使用any()all()的超级技巧,但您还要检查None是否存在于包含AB,{{1 }}

C或更直观的if not (None in [A,B,C]):(Blckknght)


旁注(深潜)

无论哪种方式,我都不鼓励使用if None not in [A, B, C]:,因为if A and B and C:if A is not None的作用不同。

if A调用if A:并使用该函数的返回值。

A.__nonzero__()是Python中的测试身份。因为在运行的Python脚本/程序中只有一个None实例。

选中此post和此post