更新:2024/09/25
【self,init】Pythonのクラスとオブジェクトについて


はるか
クラスは、オブジェクトを作るための設計図。

ふゅか
うん!例えば「動物」というクラスがあったら、「猫」とか「犬」とか「ラッコ」とか、いろんなオブジェクトが作れるってことね!
1. クラス (Class)
クラスはオブジェクトの設計図です。クラスを使ってオブジェクト(インスタンス)を生成し、そのオブジェクトに特定のデータや機能を持たせることができます。クラス内では、属性とメソッドを定義します。
1.1. クラスとオブジェクトのイメージ
以下は「動物」クラスから「猫」、「犬」、「鳥」、「ラッコ」オブジェクトを生成するイメージ図です。
クラスの実体化のことをインスタンスオブジェクトといいます。
1.2. クラスの例

ふゅか
実際にクラスを作成してみましょう!
お祭りの情報を出力できるお祭りに関連するクラスを作成します。
class Omatsuri:
def __init__(self, name, date, location):
self.name = name #インスタンス変数
self.date = date
self.location = location
self.participants = []
def show_info(self): #
print(f"Omatsuri Name: {self.name}")
print(f"Date: {self.date}")
print(f"Location: {self.location}")
__init__
メソッドはコンストラクタと呼ばれ、オブジェクトが生成される際に自動的に呼び出されます。- show_infoメソッドはお祭りに関連する情報を出力します。
- インスタンス化するときはname, date, locationに関連する情報を引数として渡します。

ふゅか
Pythonでは、クラスを定義するときに「init」という特別なメソッドを使うの。これはオブジェクトが作られるときに自動で呼ばれるのよ!

はるか
コンストラクタとも呼ぶ。初期化のためのメソッド。
1.3. クラスの要点
- init・・・自動的に初期化メソッド。initializer「初期化」の略。一般的にコンストラクタと呼ばれる。
- self・・・クラス内のメンバ変数やメソッドにアクセスするために使われます。
- self.xxx・・・インスタンス変数と呼ばれる。クラスの属性。インスタンスごとの固有のデータ。
- メソッド・・・クラス内で定義される関数のことを指します。クラスの機能や動作を定義するために使われます。
- メソッドの引数・・・メソッドの最初の引数にselfをいれるが、これは慣習。

はるか
クラス内に変数をただ定義するだけだとオブジェクトごとに同じ変数を使うことになる。
2. オブジェクト (Object)
オブジェクトはクラスから生成された実体です。クラスに基づいて作成され、クラスで定義された属性やメソッドを持つことができます。
2.1. オブジェクトの生成例

はるか
オブジェクトを生成するには、クラスを使ってインスタンス化。

ふゅか
そうね!例えば「Summer Festival」というお祭りオブジェクトを作って、情報を表示するには「Omatsuri」クラスを使って、インスタンス化してあげるわけね!
# お祭りのクラスをインスタンス化して使用する例
summer_omatsuri = Omatsuri("Summer Festival", "2024-08-15", "Tokyo")
summer_omatsuri.show_info() # メソッドの呼び出し
spring_omatsuri = Omatsuri("Spring Festival", "2024-04-15", "Hokkaido")
spring_omatsuri.show_info() # 初期情報を表示
check
Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!
PR