name = input("What is your pet's name?")
species = input("What type of pet is it?")
age = input("How old is your pet?")
class Pet:
def __init__(self, name, species, age, noise):
self.name = name
self.species = species
self.age = age
self.noise = noise
def setNoise(self, noise):
self.noise = "WOOF"
elif species == cat:
self.noise = "MEOW!"
elif species == bird:
self.noise = "CAWW!"
else:
self.noise = "Animal Noise"
def get_type(self):
print("Pet")
def toString(self):
return"{} is a {} and is {} years old".format(self.name,self.species,self.age,self.noise)
myPet = Pet(name,species,age,noise)
print(noise, myPet.toString())
当我在其中键入某些动物(如狗,猫或鸟)时,我不知道如何使程序显示噪音。任何帮助都将是惊人的。我不断遇到未定义噪声的错误。当我尝试使用种类输入来检查它是否等于狗时,也会出错。
答案 0 :(得分:0)
我认为这可能是您想要获得的。您使用了cat
,bird
等变量,但未定义它们。我认为这些应该是字符串。我也摆脱了setNoise
这个似乎没有目的的功能。由于噪声基于物种,因此将其设置为__init__
。 Python还具有一种称为__str__
的特殊方法。如果您设置了此项,那么当我致电print(myPet)
时,它将打印出myPet.__str__()
的返回值。比定义自己的字符串方法要好用,因为在打印时会自动调用它。
name = input("What is your pet's name?")
species = input("What type of pet is it?")
age = input("How old is your pet?")
# you might want to set age = int(age) if age is, e.g., an integer number of years
class Pet:
def __init__(self, name, species, age):
self.name = name
self.species = species
self.age = age
if species == "dog":
self.noise = "WOOF"
elif species == "cat":
self.noise = "MEOW!"
elif species == "bird":
self.noise = "CAWW!"
else:
self.noise = "Animal Noise"
def get_type(self):
print("Pet")
def __str__(self):
return"{} is a {} and is {} years old".format(self.name,self.species,self.age,self.noise)
myPet = Pet(name, species, age)
print(myPet.noise, myPet)