类中未定义的名称

1 python class self

为什么这会产生undefined name x?它被声明两次并全局设置.

class Pet():
    global x
    x = 0
    def __init__(self):
        global x
        x=0

    def getX():
        global x
        print x
Run Code Online (Sandbox Code Playgroud)

Hug*_*ell 5

不.全球意味着"它已在全球范围内宣布,所以在那里寻找它",但你还没有在那里宣布它.尝试

x = 1

class Pet():
    global x
    x = 0
    def __init__(self):
        global x
        x=0

    def getX(self):
        print x
Run Code Online (Sandbox Code Playgroud)

你没有给getX一个self参数,这也给出了一个错误.

我也不知道你要用所有这些全局变量来完成什么.它有点挫败了拥有漂亮,自足的课程的目的.

除非你做了一些奇怪的事情,否则你的代码应该是这样的

class Pet:
    def __init__(self, x=0):
        self.x = x
    def __str__(self):
        return str(self.x)
Run Code Online (Sandbox Code Playgroud)