Python モジュールのすべてのメソッドを一覧表示する
Python モジュール、パッケージ、またはライブラリは、Python 関数、Python クラス、および Python 変数の定義を含むファイルまたはファイルのグループです。Python では、モジュールをインポートし、その実装を使用して、コンピューターサイエンスの世界の 2つの重要な概念に固執することができます。車輪の再発明をしないでください
と自分自身を繰り返さないでください
。
これらのパッケージまたはモジュールは、数行から数百万行まで小さくすることができます。サイズが大きくなると、モジュールの分析やパッケージの内容の明確な概要の確認が困難になります。しかし、Python 開発者は私たちのためにもその問題を解決しました。
Python では、Python モジュールのメソッドとクラスを一覧表示する方法がたくさんあります。この記事では、関連する例を使用して、そのような 2つのプラクティスについて説明します。たとえば、NumPy
Python モジュールを検討することに注意してください。システムまたは仮想環境に NumPy
パッケージがない場合は、pip install numpy
または pip3 install numpy
コマンドを使用してダウンロードできます。
dir()
メソッドを使用して Python モジュールのすべてのメソッドを一覧表示する
dir()
メソッドは Python に組み込まれているメソッドです。オブジェクトまたは Python パッケージのすべての属性とメソッドを出力します。次のコードを確認して理解してください。
class A:
a = 10
b = 20
c = 200
def __init__(self, x):
self.x = x
def get_current_x(self):
return self.x
def set_x(self, x):
self.x = x
def __repr__(self):
return f"X: {x}"
print(dir(int))
print(dir(float))
print(dir(A))
出力:
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__round__', '__rpow__', '__rsub__', '__rtruediv__', '__set_format__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b', 'c', 'get_current_x', 'set_x']
dir()
メソッドを使用して、すべてのモジュールメソッドを一覧表示できます。方法については、次のコードを参照してください。
import numpy
print("NumPy Module")
print(dir(numpy))
出力:
ご覧のとおり、dir()
メソッドにはすべての NumPy
メソッドがリストされています。
inspect()
モジュールを使用して Python モジュールのすべてのメソッドを一覧表示する
inspect
モジュールは、モジュール、クラス、クラスオブジェクト、関数、トレースバック、およびオブジェクトに関する有用な情報を取得するためのいくつかの有用な関数を備えた Python モジュールです。このモジュールは、単純な目的で使用できます。その使用法については、次のコードを参照してください。
import numpy
from inspect import getmembers, isfunction
print("NumPy Module")
print(getmembers(numpy, isfunction))
出力:
getmembers()
関数は、その名前が示すように、クラスまたはモジュール内に存在するメソッド、変数、クラスなどのすべてのメンバーを取得します。メソッドまたは関数のみが必要なため、メンバーからすべての関数を除外する Python 関数である isfunction()
を使用しました。以下のような他のそのような機能もあります。
ismodule()
:オブジェクトがモジュールの場合は True を返します。isclass()
:オブジェクトがクラスの場合は True を返します。istraceback()
:オブジェクトがトレースバックの場合は True を返します。isgenerator()
:オブジェクトがジェネレーターの場合は True を返します。iscode()
:オブジェクトがコードの場合は True を返します。isframe()
:オブジェクトがフレームの場合は True を返します。isabstract()
:オブジェクトが抽象基本クラスの場合は True を返します。iscoroutine()
:オブジェクトがコルーチンの場合は True を返します。
このモジュールの詳細については、公式ドキュメントを参照してください。