wim*_*wim 5 python boolean pep8
在/tmp/spam.py:
n = 69
if n == True:
print 'potato'
Run Code Online (Sandbox Code Playgroud)
pep8实用程序抱怨这个条件:
wim@SDFA100461C:/tmp$ pep8 spam.py
spam.py:3:6: E712 comparison to True should be 'if cond is True:' or 'if cond:'
Run Code Online (Sandbox Code Playgroud)
对于您确实想要检查相等性的情况,最佳做法是什么True?True使用isOK进行身份检查吗?为什么pep8实用程序提供了一种在pep8本身明确不鼓励的替代方案?
如果你确实需要检查的平等与True再利用==,而忽略PEP8,但几乎是不是你想要的任何可能的情况下.
如果你想知道你的值是否是Python认为是真的值之一,请使用if cond:.如果你想知道你拥有的值是否是单例值,True那么使用is True布尔值True并且False是单例,因此is在这种情况下使用它是正确的.
如果你需要测试你的对象是单身True,还是linter或者代码审查者抱怨is True,那么isinstance(x, bool) and x就是行为等同(但速度较慢)的替代品.
检查x == True是一个中途的房子.这是真的x is True,对于你的情况是假的x=69,但是还有其他对象本身不是,True但是x==True给出了一个意想不到的真实结果,如1 == True真实.(感谢@Ant).
所以把它放在一起:
value of n: True 1 69 False 0
-----------------------------------------------
expression result
-----------------------------------------------
if n: True True True False False
if n is True: True False False False False
if n==True: True True False False False
Run Code Online (Sandbox Code Playgroud)
从该表中选择一行,给出您真正想要的结果(最后一行不是它).
| 归档时间: |
|
| 查看次数: |
1154 次 |
| 最近记录: |