为什么我收到一个未定义错误的全局变量?

时间:2014-12-09 04:30:09

标签: python

这是我的代码片段:

class myClass:
    verbs {'hear': 3, 'do': 5}

    def __init__(self):
        self.D = self.create_dictionary()

    def create_dictionary(self):
        D = {}
        for entry in verbs:
            D[verbs[entry]] = {}

我在循环线上遇到运行时错误:"全局名称'动词'未定义"。我还没有弄清楚为什么会这样。

2 个答案:

答案 0 :(得分:1)

首先,您错过了=中的作业verbs = {'hear': 3, 'do': 5}

其次,verbs并非完全全球化,它位于myClass内。要引用它,请使用myClass.verbs或在课外分配,我认为这更符合您的意图,但我可能错了。

答案 1 :(得分:0)

试试这个

class myClass:

    verbs={'hear': 3, 'do': 5}

    def __init__(self):
        self.D = self.create_dictionary()

    def create_dictionary(self):
        D = {}
        for entry in self.verbs:
            D[self.verbs[entry]] = {}

或者更好地在构造函数中包含动词定义。