見出し画像

【第13回】Pythonのメソッドとコンストラクタ(クラスを使いこなす)

Pythonのオブジェクト指向プログラミングでは、クラスのメソッドや**コンストラクタ(__init__メソッド)**を活用することで、より柔軟なプログラムを作成できます。

この記事では、Ubuntu環境でviを使いながら、メソッドとコンストラクタの基本について解説します。


1、インスタンスメソッド

クラスのメソッドは、self を引数として受け取り、インスタンスのデータを操作できます。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def introduce(self):
        print(f"私は{self.name}です。{self.age}歳です。")

person1 = Person("太郎", 25)
person1.introduce()  # 私は太郎です。25歳です。

2、クラスメソッド

クラスメソッドは、@classmethod デコレータを使って定義し、クラス全体に関する操作を行います。

class Student:
    school_name = "東京学園"
    
    @classmethod
    def change_school(cls, new_name):
        cls.school_name = new_name
    
    @classmethod
    def get_school_name(cls):
        return cls.school_name

print(Student.get_school_name())  # 東京学園
Student.change_school("大阪学園")
print(Student.get_school_name())  # 大阪学園

3、スタティックメソッド

スタティックメソッドは @staticmethod を使い、インスタンスやクラスに依存しない処理を定義します。

class MathUtils:
    @staticmethod
    def add(x, y):
        return x + y

print(MathUtils.add(3, 5))  # 8

4、コンストラクタの応用

__init__ メソッドを応用して、オブジェクト生成時の初期設定を行えます。

class Car:
    def __init__(self, brand, model, year=2024):
        self.brand = brand
        self.model = model
        self.year = year
    
    def show_info(self):
        print(f"車: {self.brand} {self.model}, {self.year}年モデル")

car1 = Car("Toyota", "Corolla")
car1.show_info()  # 車: Toyota Corolla, 2024年モデル

まとめ

  • インスタンスメソッドは self を使い、インスタンスごとのデータを扱います。

  • クラスメソッドは @classmethod を使い、クラス全体の情報を管理します。

  • スタティックメソッドは @staticmethod を使い、クラスやインスタンスに依存しない処理を行います。

  • コンストラクタ __init__ を活用すると、オブジェクトの初期設定が可能です。

  • Ubuntu環境ではviエディタを使ってPythonコードを編集し、python3 ファイル名で実行できます。

メソッドとコンストラクタを活用して、クラスの機能を最大限に引き出しましょう!


いいなと思ったら応援しよう!