🐑

特殊メソッド__X__について

2023/07/23に公開

今回はpyhtonの特殊メソッドについて解説します。

pyhtonの特殊メソッドとは __ と __ によって囲まれている関数を指します。
str()やlen()のように普段から使っていることが多いと思います。

これはpythonの基本的な動作を提供しますが、クラス内部でオーバーライド(再定義)することで、class内の要素に対してstrやlenなど、元々存在するメソッドを変更することもできます。

class MyClass:
    def __init__(self, data):
        self.data = data
    
    def __str__(self):
        return f"MyClass instance with data: {self.data}"
    
    def __len__(self):
        return len(self.data)+1

instance = MyClass([1, 2, 3, 4, 5])

print(str(instance))
print(len(instance))
# 出力
'MyClass instance with data: [1, 2, 3, 4, 5]'
6

このように、strやlenの動作を変更することができます。便利ですが、普段使用している組み込み関数の動作を変更するため、注意して使用しましょう。

それでは今回はここまでです。読んでいただきありがとうございました!

Discussion