Pythonには、オブジェクトの振る舞いを変更するために使用される特殊メソッドがあります。例えば、__init__は、クラスのインスタンスを初期化するために使用されます。__str__は、オブジェクトを文字列に変換するために使用されます。他にも、__add__や__sub__などの算術演算子を定義するための特殊メソッドがあります。
__init__メソッド
Pythonのオブジェクト指向プログラミングにおいて、オブジェクトが生成された際に自動的に呼び出される特殊なメソッドです。このメソッドは、クラスのインスタンスを初期化するために使用されます。例えば、クラスの属性を初期化するために使用されます。
例えば、以下のようなコードで、Personクラスのインスタンスを生成すると、__init__メソッドが呼び出されます。このメソッドは、nameとage属性を初期化します。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("John", 36)
上記のコードで、personオブジェクトが生成されると、__init__メソッドが呼び出されます。このメソッドは、nameとage属性を初期化します。
__str__メソッド
Pythonのオブジェクト指向プログラミングにおいて、オブジェクトの文字列表現を返すために使用される特殊なメソッドです。このメソッドは、オブジェクトを文字列に変換するために使用されます。例えば、print関数でオブジェクトを出力する場合、__str__メソッドが呼び出されます。
以下は、__str__メソッドを使用して、Personクラスのインスタンスを文字列に変換する例です。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}"
person = Person("John", 36)
print(person)
上記のコードで、personオブジェクトが生成されると、__init__メソッドが呼び出されます。そして、print関数でpersonオブジェクトを出力すると、__str__メソッドが呼び出されます。このメソッドは、Personクラスのインスタンスを文字列に変換します。