1

学校で Python プログラミング 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はプログラムではなく、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

名前にはgetandも必要です。set

    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

imports petprogram がどこから来たのかもわかりません...それはおそらくあなたのモジュールを呼び出すべきものであり、インストラクターはそれをテストするために実行することになっているものとして提供しましたか?

(また、すべての __under_scores とは何ですか? これはあなたの先生が励ましていることですか?)

于 2012-12-06T06:05:21.663 に答える