这有效:
>>> not(True)
False
>>> a = {}
>>> a["hidden"] = False
>>> a["hidden"] = not(a["hidden"])
>>> a["hidden"]
True
但不是这样:
def toggleHelp(self, event):
# https://stackoverflow.com/questions/10267465/showing-and-hiding-widgets#10268076
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
在init中:
self.special_frame["hidden"] = False
我做错了什么?
答案 0 :(得分:3)
问题是您需要使用==
=
。这通常不会导致语法错误,但在您的情况下,您有:
a == not(b)
与:
相同a == not b
这组分为:
(a == not) b
,这会导致语法错误。
另一方面,赋值运算符的优先级较低,因此:
a = not b
分组为:
a = (not b)
这很好。
答案 1 :(得分:0)
我很确定你只需要一个等号,也许这就是错误。
=
用于分配,==
用于比较。