Python语法错误not()运算符

时间:2017-10-19 14:38:01

标签: python python-3.6

这有效:

>>> 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

我做错了什么?

2 个答案:

答案 0 :(得分:3)

问题是您需要使用== =。这通常不会导致语法错误,但在您的情况下,您有:

a == not(b)

与:

相同
a == not b

这组分为:

(a == not) b

,这会导致语法错误。

另一方面,赋值运算符的优先级较低,因此:

a = not b

分组为:

a = (not b)

这很好。

答案 1 :(得分:0)

我很确定你只需要一个等号,也许这就是错误。 =用于分配,==用于比较。