1

我正在学校做 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

4 回答 4

4

Aclass不是程序,Aclass应该建模一个东西,比如宠物。因此,首先,您应该适当地命名您的类。

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

您还需要一个getandset作为名称:

    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。

于 2012-12-06T06:02:07.393 回答
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

在进一步冒险之前,您绝对应该阅读有关课程的教程。

于 2012-12-06T06:04:18.343 回答
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
于 2012-12-07T18:58:28.503 回答
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 是怎么回事?这是你的老师鼓励的吗?)

于 2012-12-06T06:05:21.663 回答