【发布时间】:2019-10-16 17:43:03
【问题描述】:
我是 Python 和 OOP 的新手。我以前用过程编程风格做过 python。
我需要写一个名为Pet的类,它应该有以下数据属性:
- __name(宠物的名字)
- __animal_type(用于宠物的类型,例如狗、猫)
- __age(宠物的年龄)
它应该包含一个创建这些属性的__init__initializer。它也应该有
所有 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()))
【问题讨论】:
-
我不敢问,但是为什么你需要getter和setter?这就是用 Python 教授 Java 的人会给的那种任务。
-
在 Python 中,您不会为属性名称错误、只返回属性值什么都不做的 getter 以及只设置属性值什么都不做的 setter 烦恼。