Python 我的代码总是得到一个“quot;名称';繁殖';“未定义”;错误
我的错误是:Python 我的代码总是得到一个“quot;名称';繁殖';“未定义”;错误,python,python-2.7,class,Python,Python 2.7,Class,我的错误是: NameError: name 'breed' is not defined 但是我认为它是在\uuuu init\uuu函数中定义的?有什么建议吗?这是一个考试学习指南中的代码,我试图自己将其输入到Python2.7中以查看输出 class Dog(object): def __init__(self, breed, owner = "pound"): self.owner = owner self.breed = breed
NameError: name 'breed' is not defined
但是我认为它是在\uuuu init\uuu
函数中定义的?有什么建议吗?这是一个考试学习指南中的代码,我试图自己将其输入到Python2.7中以查看输出
class Dog(object):
def __init__(self, breed, owner = "pound"):
self.owner = owner
self.breed = breed
@property
def owner(self):
return self._owner
@owner.setter
def owner(self, value):
self._owner = value
@breed.setter
def breed(self, value):
self._breed = value
def __str__(self):
return "Breed = {}, \tOwner = {}".format(\
self.breed, self.owner)
d1 = Dog("Beagle")
d2 = Dog("Rottweiler", "James")
d3 = Dog("Poodle")
print "d1: {}".format(d1)
print "d2: {}".format(d2)
print "d3: {}".format(d3)
您还应该拥有该品种的
@property
:
class Dog(object):
def __init__(self, breed, owner = "pound"):
self.owner = owner
self.breed = breed
@property
def owner(self):
return self._owner
@owner.setter
def owner(self, value):
self._owner = value
@property
def breed(self):
return self.breed
@breed.setter
def breed(self, value):
self._breed = value
def __str__(self):
return "Breed = {}, \tOwner = {}".format(\
self.breed, self.owner)
d1 = Dog("Beagle")
d2 = Dog("Rottweiler", "James")
d3 = Dog("Poodle")
print "d1: {}".format(d1)
print "d2: {}".format(d2)
print "d3: {}".format(d3)
添加getter:
@property def bread(self):返回self.\u breed
您为所有者做得很好,您只需为breed
做同样的事情。