📔
Pythonで自身の親クラスを調べる方法
はじめに
Pythonでクラスの継承関係を理解することは、オブジェクト指向プログラミングにおいて重要です。
この記事では、Pythonで自身の親クラスを調べるための主な方法を紹介します。
ちなみに筆者は直近LangChain
のクラス周りで__mro__
にお世話になりました。
方法
-
__bases__
属性を使用する
__bases__
属性は、クラスの直接の親クラスをタプルとして返します。
class Parent:
pass
class Child(Parent):
pass
print(Child.__bases__) # 出力: (<class '__main__.Parent'>,)
この方法は、直接の親クラスのみを取得したい場合に便利です。
-
__mro__
属性を使用する
__mro__
(Method Resolution Order) 属性は、クラスの継承順序を表すタプルを返します。これには、クラス自身、すべての親クラス、そして最終的に object クラスが含まれます。
print(Child.__mro__) # 出力: (<class '__main__.Child'>, <class '__main__.Parent'>, <class 'object'>)
この方法は、多重継承を含む複雑な継承構造を理解する場合に便利です。
まとめ
属性を用いることで、Pythonプログラムにおけるクラスの継承関係を効果的に調べることができます。
-
__bases__
: 直接の親クラスを知りたい場合 -
__mro__
: 完全な継承順序を知りたい場合
Discussion