Python类宠物程序

时间:2012-12-06 05:48:33

标签: python class

我正在我的学校完成Python Programming 157的任务。 我需要编写一个名为Pet的类,它具有以下数据属性:

__name (for the name of the pet)
__animal_type (Examples: "Cat", "Dog", and "Hamster" )
__age (for the pet's age)
__height (for the pet's height)

需要包括

set_name
get_name

我尝试了4次似乎无法做到正确......任何有关它开始的线索?

# The Pet Program.

class PetProgram:
  # The __init__ method accepts an argument for the program
  # and adds it to the __pets attribute.
  def __init__(self, pet):
      self.__pets = pet
  # The name will add to the pet attribute.
  def name(self, name):
      self.__pets = name
  def age(self, age):
      self.__pets = age
  def animal(self, animal):
      self.__pets = animal
  def height(self, height):
      self.__pets = height
  # The pets_return will show you the list.
  def pets_return(self):
      return self.__pets

# The Pet Program.
import petsprogram
def main():
  # Enter the name.
  petname = input('What is the name of the pet: ')
  print 'This will be added to the record.'
  savings.name(petname)
  # Display the list.
  print petsprogram
main()

以上是我最近的尝试......没有这样的运气......有什么帮助吗?提前谢谢......

4 个答案:

答案 0 :(得分:4)

class不是程序,class应该为宠物建模。因此,首先,你应该适当地命名你的班级。

class Pet(object): # Pet derives from the object class, always do this

现在我想你想要一个带有宠物名字的构造函数,也许还有宠物的类型,所以我们将定义它。

    def __init__(self, pet_name, pet_type):
        self.pet_name = pet_name
        self.pet_type = pet_type

您还需要getset作为名称:

    def get_name(self):
        return self.pet_name

    def set_name(self, pet_name):
        self.pet_name = pet_name

要使用此类,请将其实例化为类的实例:

    puppy = Pet('Rover', 'Dog')
    puppy.get_name()  # prints Rover

我希望这足以让你前进。您应该阅读评论中提到的Python中的OOP。

答案 1 :(得分:1)

首先,您为什么使用“私人”__attributes?这似乎没有必要。

其次,您将所有属性分配给同一个实例变量:

self.__pets = pet
self.__pets = name
self.__pets = age
self.__pets = animal
self.__pets = height

你应该使用像

这样的东西
def __init__(self, pet, name, age, animal, height):
    self.pet = pet
    self.name = name
    self.age = age
    self.animal = animal
    self.height = height

你应该在冒险之前阅读tutorial on classes

答案 2 :(得分:0)

我不确定__pets绑定在哪里发挥作用。您的初步描述没有说明任何相关内容。我不会期望一个代表宠物的物体,如一只奇异的宠物,具有属于宠物列表的属性。我希望有类似的东西:

class PetProgram:
    def __init__(self, name ='', age=0, type='Unknown', height=0):
        self.__name = name
        self.__age = age
        self.__animal_type = type
        self.__height = height

     def get_name(self):
        return self.__name

     def set_name(self, name):
        self.__name = name

我也不确定导入宠物程序来自哪里...是你应该称之为你的模块,然后教练提供了你应该运行的东西来测试它?

(同样,所有__under_scores都是什么?这是你老师鼓励的事情吗?)

答案 3 :(得分:0)

这样的事情怎么样?

>>> class Pets:
def set_Name(self,name):
    self.name=name
def get_Name(self):
    return self.name
def set_Atype(self,atype):
    self.atype=atype
def get_Atype(self):
    return self.atype
def set_Age(self,age):
    self.age=age
def get_Age(self):
    return self.age
def set_Height(self,height):
    self.height=height
def get_Height(self):
    return self.height