我是Python和OOP的新手。我以前已经以程序编程风格完成了python的工作。
我需要编写一个名为Pet的类,该类应具有以下数据属性:
__name(代表宠物的名字)
__animal_type(用于宠物的类型,例如Dog,Cat)
__age(针对宠物的年龄)
它应包含创建这些属性的__init__
初始化程序。它也应该有
所有的mutator和accessor方法。编写一个程序来创建一个对象
并提示用户输入宠物的名称,类型和年龄。在末尾
程序,在屏幕上显示宠物的名称,类型和年龄。样本输出为
如下。
Enter Pet Name: Lucky
Enter Pet Type: Dog
Enter Pet Age: 5
Pet Lucky is a dog, and it is 5 years old
这是我到目前为止所做的(它没有在我的cmd上运行,没有错误代码)
class Pet:
def set_name(self, name):
self.__name = name
def set_animal_type(self, animal_type):
self.__animal_type = animal_type
def set_age(self,age):
self.__age = age
def get_name(self):
return self.__name
def get_animal_type(self):
return self.__animal_type
def get_age(self):
return self.__age
name = input("Enter pet name: ")
animal_type = input("Enter pet type: ")
age = input("Enter pet age: ")
p = Pet()
p.set_name(name)
p.set_animal_type(animal_type)
p.set_age(age)
print("Pet %s is a %s ,and it is %s years old." %(p.set_name(), p.set_animal_type(), p.set_age()))
最佳答案
您正在调用setter而不是getter
如下更改打印行
print("Pet %s is a %s ,and it is %s years old." %(p.get_name(), p.get_animal_type(), p.get_age()))
另外,添加缺少的init方法
def __init__(self, name, animal_type, age):
self.name = name
self.animal_type = animal_type
self.age = age