我的全球无法改变班级的定义

时间:2019-04-13 08:24:03

标签: python

我定义一个变量,名称为'Decisoin_name',并首先设置-1

然后我尝试按照类的定义进行更改

因为我每次调用def时都要加1

但是系统会向我发送一条消息

  

“分配前已引用本地变量'Decision_name'”

我该怎么办?

您能给我一个解决方案吗?谢谢

以下是我的代码

Decision_name = -1

class Decision_Dialog(QDialog):

    def sendback(self):

        Decision_name+=1

        print(Decision_name)

        self.close()

1 个答案:

答案 0 :(得分:0)

您不能直接从类方法中更改全局名称,您需要事先将其声明为 global 变量:

class Decision_Dialog(QDialog):
    def sendback(self):
        global Decision_name
        Decision_name += 1

尽管如果不必是全局变量,则可以采用其他路线,例如将其设置为类变量并让每个实例根据需要进行修改,或者通过在__init__中进行定义将其设置为实例变量,然后进行必要的更改。

此外,您应该使用 snake_case 作为变量名,例如decision_name