[英]NameError: global name is not defined in MyClass.py
I am running an example in a Python book for classes. 我正在Python书中为类运行示例。
MyClass.py MyClass.py
class MyClass:
def __init__(self, Name="Sam", Age=32):
self.Name = Name
self.Age = Age
def GetName(self):
return self.Name
def SetName(self, Name):
self.Name = Name
def GetAge(self):
return self.Age
def SetAge(self, Age):
self.Age = Age
def __str__(self):
return "{0} is aged {1}.".format(self.Name, self.Age)
MyClassTest.py MyClassTest.py
import MyClass
SamsRecord = MyClass.MyClass()
AmysRecord = MyClass.MyClass("Amy", 44)
print(SamsRecord.GetAge())
SamsRecord.SetAge(33)
print(AmysRecord.GetName())
AmysRecord.SetName("Aimee")
print(SamsRecord)
print(AmysRecord)
When I run MyClassTest.py, I got the following error: 当我运行MyClassTest.py时,出现以下错误:
Traceback (most recent call last): File "MyClassTest.py", line 3, in <module>
SamsRecord = MyClass.MyClass() File "MyClass.py", line 3, in __init__ self.Name = Name
NameError: global name 'Name' is not defined
Any suggests on how to fix the error? 任何建议如何解决该错误?
def __init__(self, name="Sam", Age=32):
self.Name = Name
self.Age = Age
typing error, you are trying to set self.Name to Name but in the parameters you called it name instead of Name so try this: 键入错误,您尝试将self.Name设置为Name,但是在参数中将其称为name而不是Name,所以请尝试以下操作:
def __init__(self, Name="Sam", Age=32):
self.Name = Name
self.Age = Age
You need to change self.Name = Name
to self.Name = name
because the pamameter is name
and not Name
. 您需要将
self.Name = Name
更改为self.Name = name
因为参数是name
而不是Name
。 Moreover, in this declaration def SetAge(self, Name):
, it should be def SetAge(self, Age):
because there's not argument Name
as such (which you are trying to set in the next line). 此外,在此声明中
def SetAge(self, Name):
def SetAge(self, Age):
它应为def SetAge(self, Age):
因为没有这样的参数Name
(您尝试在下一行中设置)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.