为什么使用 not() 运算符有时会出现 SyntaxError?
Why is using not() operator sometimes a SyntaxError?
这个有效:
>>> not(True)
False
>>> a = {}
>>> a["hidden"] = False
>>> a["hidden"] = not(a["hidden"])
>>> a["hidden"]
True
但不是这个:
def toggleHelp(self, event):
#
if (self.special_frame["hidden"] == False):
self.special_frame.grid_remove()
else:
self.special_frame.grid()
self.special_frame["hidden"] == not(self.special_frame["hidden"])
错误
line 563
self.special_frame["hidden"] == not(self.special_frame["hidden"])
^
SyntaxError: invalid syntax
在初始化中:
self.special_frame["hidden"] = False
我做错了什么?
我很确定您只需要一个等号,也许这是个错误。
=
用于赋值,==
用于比较。
问题是在需要 =
的地方使用了 ==
。这通常不会导致语法错误,但在您的情况下,您有:
a == not(b)
等同于:
a == not b
这组为:
(a == not) b
这会导致语法错误。
另一方面,赋值运算符的优先级较低,因此:
a = not b
分组为:
a = (not b)
很好。
这个有效:
>>> not(True)
False
>>> a = {}
>>> a["hidden"] = False
>>> a["hidden"] = not(a["hidden"])
>>> a["hidden"]
True
但不是这个:
def toggleHelp(self, event):
#
if (self.special_frame["hidden"] == False):
self.special_frame.grid_remove()
else:
self.special_frame.grid()
self.special_frame["hidden"] == not(self.special_frame["hidden"])
错误
line 563
self.special_frame["hidden"] == not(self.special_frame["hidden"])
^
SyntaxError: invalid syntax
在初始化中:
self.special_frame["hidden"] = False
我做错了什么?
我很确定您只需要一个等号,也许这是个错误。
=
用于赋值,==
用于比较。
问题是在需要 =
的地方使用了 ==
。这通常不会导致语法错误,但在您的情况下,您有:
a == not(b)
等同于:
a == not b
这组为:
(a == not) b
这会导致语法错误。
另一方面,赋值运算符的优先级较低,因此:
a = not b
分组为:
a = (not b)
很好。