Python モジュールのすべてのメソッドを一覧表示する

Vaibhav Vaibhav 2023年1月30日
  1. dir() メソッドを使用して Python モジュールのすべてのメソッドを一覧表示する
  2. inspect() モジュールを使用して Python モジュールのすべてのメソッドを一覧表示する
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))

出力:

モジュール内の Python リスト関数-dir()メソッド

ご覧のとおり、dir() メソッドにはすべての NumPy メソッドがリストされています。

inspect() モジュールを使用して Python モジュールのすべてのメソッドを一覧表示する

inspect モジュールは、モジュール、クラス、クラスオブジェクト、関数、トレースバック、およびオブジェクトに関する有用な情報を取得するためのいくつかの有用な関数を備えた Python モジュールです。このモジュールは、単純な目的で使用できます。その使用法については、次のコードを参照してください。

import numpy
from inspect import getmembers, isfunction

print("NumPy Module")
print(getmembers(numpy, isfunction))

出力:

モジュール内の Python リスト関数-inspect()メソッド

getmembers() 関数は、その名前が示すように、クラスまたはモジュール内に存在するメソッド、変数、クラスなどのすべてのメンバーを取得します。メソッドまたは関数のみが必要なため、メンバーからすべての関数を除外する Python 関数である isfunction() を使用しました。以下のような他のそのような機能もあります。

  • ismodule():オブジェクトがモジュールの場合は True を返します。
  • isclass():オブジェクトがクラスの場合は True を返します。
  • istraceback():オブジェクトがトレースバックの場合は True を返します。
  • isgenerator():オブジェクトがジェネレーターの場合は True を返します。
  • iscode():オブジェクトがコードの場合は True を返します。
  • isframe():オブジェクトがフレームの場合は True を返します。
  • isabstract():オブジェクトが抽象基本クラスの場合は True を返します。
  • iscoroutine():オブジェクトがコルーチンの場合は True を返します。

このモジュールの詳細については、公式ドキュメントを参照してください。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python Module