Menu
Coddy logo textTech

コンストラクタメソッド (__init__)

CoddyのPythonジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 7/64。

__init__ メソッドは、新しいオブジェクトを作成したときに自動的に実行される特別なメソッドです。オブジェクトの属性を初期化します。

こちらはコンストラクターを持つクラスの例です:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

__init__ method は parameters を受け取り、self using してそれらをインスタンス attributes に割り当てます。

コンストラクターを使用してオブジェクトを作成します:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

Dog("Rex", "German Shepherd")を呼び出すと、Pythonは自動的に__init__を呼び出し、引数を渡します。

コンストラクターによって設定された属性にアクセスします:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

出力:

Rex
German Shepherd
Buddy
Golden Retriever

デフォルト値を持つコンストラクターを作成することもできます:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# 猫を作成
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age はデフォルトで 1

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

出力:

Fluffy is 3 years old
Whiskers is 1 years old

重要なポイント:__init__ メソッドは、すべてのオブジェクトが作成時に初期データで適切に設定されるようにします。オブジェクトの作成後に属性を手動で設定する手間を省けます。

challenge icon

チャレンジ

簡単

書籍管理システムを実装するための Python ファイル(book.pydriver.py)が与えられています。この課題では、1つのファイルで Book クラスを定義し、それを別のファイルでインポートして使用します。

あなたの課題は次のとおりです:

  • book.pyBook クラスを完成させ、titleauthorpages 属性を初期化する __init__ メソッドを実装する
  • driver.py ファイルは、あなたの Book クラスをインポートして使用し、"Harry Potter" by "J.K. Rowling" with 400 pages の book object を作成します

book.py の詳細な TODO コメントに従ってください。

必須の出力形式: [翻訳した内容]

自分で試してみよう

# TODO: book.pyからBookクラスをインポートする
# この形式を使用: from book import Book

# TODO: 次の値で 'my_book' という名前のbookオブジェクトを作成する:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# 例: my_book = Book("Title", "Author", pages)

# 本の詳細を表示する
# TODO: この行が実行される前に my_book が正しく定義されていることを確認する
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ