未定义类中的全局名称

Jos*_*187 0 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
Run Code Online (Sandbox Code Playgroud)

它只是回来了

NameError: global name 'printThis' is not defined
Run Code Online (Sandbox Code Playgroud)

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

Ign*_*ams 5

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

self.foo = self.printThis(1)
Run Code Online (Sandbox Code Playgroud)

  • OP还需要给`printThis`一个`self`参数,`result.bar`将是'None`,因为`printThis`不返回任何东西. (2认同)