var == False 或者如果不是 var
var == False or if not var
var = False
if not var:
do_thing()
或
var = False
if var == False:
do_thing()
两者有什么区别?(如果有的话)
一个比另一个快吗?
根据 PEP8 "Programming Recommendations":
Don't compare boolean values to True or False using ==.
- Yes:
if greeting:
- No:
if greeting == True:
- Worse:
if greeting is True:
你的两个测试恰好在这里工作,但一般来说,使用隐式布尔值被认为更“Pythonic”,因为“真实”与“虚假”通常比 True
与真实更重要。 False
; if not var:
将在 None
或空序列时准确地将 var
识别为 falsy,这通常是您想要的。
就性能而言,if not var:
会更快; if var == False:
必须加载 var
和 False
,执行比较,然后执行 if
总是执行的隐式布尔测试; if not var:
直接执行隐式布尔测试,没有序言。
var = False
if not var:
do_thing()
或
var = False
if var == False:
do_thing()
两者有什么区别?(如果有的话) 一个比另一个快吗?
根据 PEP8 "Programming Recommendations":
Don't compare boolean values to True or False using ==.
- Yes:
if greeting:
- No:
if greeting == True:
- Worse:
if greeting is True:
你的两个测试恰好在这里工作,但一般来说,使用隐式布尔值被认为更“Pythonic”,因为“真实”与“虚假”通常比 True
与真实更重要。 False
; if not var:
将在 None
或空序列时准确地将 var
识别为 falsy,这通常是您想要的。
就性能而言,if not var:
会更快; if var == False:
必须加载 var
和 False
,执行比较,然后执行 if
总是执行的隐式布尔测试; if not var:
直接执行隐式布尔测试,没有序言。