【发布时间】:2023-11-07 03:57:01
【问题描述】:
当我运行这段代码时。我收到以下错误
Traceback(最近一次调用最后一次):文件“C:/Users/Nabeel Hussain Syed/PycharmProjects/Hello World/check.py”,第 80 行,在 打印(spot.toString()) 文件“C:/Users/Nabeel Hussain Syed/PycharmProjects/Hello World/check.py”,第 66 行,在 toString 中 return "{} 身高 {} 厘米,体重 {} 公斤,然后说 {}。他的主人是 {}".format(self.__name, AttributeError: 'Dog' 对象没有属性 '_Dog__name'
Open the link of the image to check out the errors.
class Animal:
__name = None
__height = 0
__weight = 0
__sound = 0
def __init__(self, name, height, weight, sound):
self.__name = name
self.__height = height
self.__weight = weight
self.__sound = sound
def set_name(self, name):
self.__name = name
def set_height(self, height):
self.__height = height
def set_weight(self, weight):
self.__weight = weight
def set_sound(self, sound):
self.__sound = sound
def get_name(self):
return self.__name
def get_height(self):
return str(self.__height)
def get_weight(self):
return str(self.__weight)
def get_sound(self):
return self.__sound
def get_type(self):
print("Animal")
def toString(self):
return "{} is {} cm tall and {} kilograms and say {}".format(self.__name,
self.__height,
self.__weight,
self.__sound)
cat = Animal('Whiskers', 33, 10, 'Meow')
print(cat.toString())
class Dog(Animal):
__owner = ""
def __init__(self,name,height,weight,sound,owner):
self.__owner = owner
super(Dog,self).__init__(name,height,weight,sound)
def set_owner(self, owner):
self.__owner = owner
def get_owner(self):
return self.__owner
def get_type(self):
print("Dog")
def toString(self):
return "{} is {} cm tall and {} kilograms and say {}. His owner is {}".format(self.__name,
self.__height,
self.__weight,
self.__sound,
self.__owner)
def multiple_sounds(self, how_many=None):
if how_many is None:
print(self.get_sound())
else:
print(self.get_sound() * how_many)
spot = Dog("Spot", 53, 27, "Ruff", "Derek")
print(spot.toString())
【问题讨论】:
-
请,请,不要使用那个“约定”。 Python 不是 Java,不要强求。如果您必须从课堂外控制分配,请使用属性。
标签: python runtime-error attributeerror