未定义类中的全局名称

时间:2012-09-30 16:56:53

标签: python class

所以我整天都在乱搞这个问题,而我仍然无法让它工作

class pleaseWork:
    def __init__(self):
        self.foo=printThis(1)
        self.bar=printThis(2)
    def printThis(x):
        if x==1:
            print "foot"
        elif x==2:
            print "bar"

result=pleaseWork()

result.bar

它只返回

NameError: global name 'printThis' is not defined

请告诉我为什么它不起作用......

2 个答案:

答案 0 :(得分:5)

因为printThis是当前对象的属性。

self.foo = self.printThis(1)

答案 1 :(得分:1)

class pleaseWork:
    def __init__(self):
        self.foo=self.printThis(1)
        self.bar=self.printThis(2)
    def printThis(self, x):
        if x==1:
            print "foot"
        elif x==2:
            print "bar"

result=pleaseWork()

result.bar