为什么这会产生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)
不.全球意味着"它已在全球范围内宣布,所以在那里寻找它",但你还没有在那里宣布它.尝试
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)