我有
if p != None && (self.running == None or self.running < p):
self.preempt(p)
缩进有什么问题?
答案 0 :(得分:8)
使用and
代替&&
。
同样PEP 8 -- Style Guide for Python Code说:
应该始终使用
is
或is not
来比较像None这样的单例,而不是等式运算符。
结果应该是:
if p is not None and (self.running is None or self.running < p):
self.preempt(p)
答案 1 :(得分:2)
很可能它与先前语句的缩进不匹配(您可能混合制表符和空格,或者缩进可能与先前语句的数量不同)。其余的代码和实际的错误消息会有所帮助。
答案 2 :(得分:1)
实际上尝试这会产生类似的错误消息:
如果源位于文件中:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 1
if x && y:
^
SyntaxError: invalid syntax
如果输入的来源是:
File "<stdin>", line 1
if x && y: pass
^
SyntaxError: invalid syntax
在这两种情况下,请注意^
指向&&
的方式?这是因为&&
语法无效(如消息所示)。它与缩进无关(就像消息没有说的那样)。