1. ホーム
  2. python

[解決済み] ペットクラス パイソン

2022-02-15 19:22:12

質問内容

今回の課題の指示です。 Pet という名前のクラスを作成し、以下の属性を持つようにしなさい。

  • __名前
  • __animal_type
  • _年齢

そして、以下のようなメソッドを持つことになります。

  • set_name
  • 動物の種類を設定する
  • 年齢を設定する
  • 名前
  • 動物の種類を取得する
  • 年齢を取得する

このクラスが書けたら、このクラスのオブジェクトを生成して、ペットの名前、種類、年齢を入力させるプログラムを書いてください。データは、オブジェクトの属性として格納されます。ペットの名前、種類、年齢を取得し、画面に表示するには、オブジェクトのアクセッサメソッドを使用します。

以下は私のコードです。

class Pet(object):
    def __init__(self, name, animal_type, age):
        self.__name = name
        self.__animal_type = animal_type
        self.__age = age

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

    def set_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


# The main function
def main():
    # Create an object from the Pet class
    pets = Pet(name, animal_type, age)

    # Prompt user to enter name, type, and age of pet
    name = input('What is the name of the pet: ')
    animal_type = input('What type of pet is it: ')
    age = int(input('How old is your pet: '))
    print('This will be added to the records. ')
    print('Here is the data you entered:')
    print('Pet Name: ', pets.get_name)
    print('Animal Type: ', pets.get_animal_type)
    print('Age: ', pets.get_age)

main()

このプログラムを実行すると、次のようなエラーが発生します。 UnboundLocalError: ローカル変数 'name' は代入前に参照されました。

どうすればいいですか?

あなたの問題は、ペットの詳細についてユーザーに尋ねる前にペットを作成していることです。

# The main function
def main():
    # Create an object from the Pet class
    # pets = Pet(name, animal_type, age) --------------------- move this
                                                               #  |
    # Prompt user to enter name, type, and age of pet          #  |
    name = input('What is the name of the pet: ')              #  |
    animal_type = input('What type of pet is it: ')            #  |
    age = int(input('How old is your pet: '))                  #  |
    pets = Pet(name, animal_type, age) # <---------------------- here
    print('This will be added to the records. ')
    print('Here is the data you entered:')
    print('Pet Name: ', pets.get_name)
    print('Animal Type: ', pets.get_animal_type)
    print('Age: ', pets.get_age)

main()