Home » Python » オブジェクトのメソッド一覧的なものを取得するーdir・callable・getattr関数

オブジェクトのメソッド一覧的なものを取得するーdir・callable・getattr関数

動作検証バージョン:64bit版 Windows 10 Pro + Python 3.8.0

Pythonで未知のライブラリ等を利用する場合に、dir関数等の利用が必須です。

ただdir関数では、すべての識別子が出力されてしまう難点もあります。

[スポンサードリンク]

例えば、openpyxlの場合以下のような結果となります。

>>> import openpyxl
>>> dir(openpyxl)
['DEFUSEDXML', 'LXML', 'NUMPY', 'PANDAS', 'Workbook', '__author__', '__author_email__', '__builtins__', '__cached__', '__doc__', '__file__', '__license__', '__loader__', '__maintainer_email__', '__name__', '__package__', '__path__', '__spec__', '__url__', '__version__', '_constants', 'cell', 'chart', 'chartsheet', 'comments', 'compat', 'constants', 'descriptors', 'drawing', 'formatting', 'formula', 'load_workbook', 'open', 'packaging', 'pivot', 'reader', 'styles', 'utils', 'workbook', 'worksheet', 'writer', 'xml']

出力される結果が多いのです。

IPythonを使えば見やすくはなりますが、出力結果が多いことに変わりはありません。

オブジェクトのメソッド一覧的なものを出力するサンプル

こんなときに以下のコードを実行すると、dir関数よりもっと限定された、(厳密には違いますが)メソッド一覧的なものを取得できます。

import openpyxl

obj = openpyxl
for i in dir(obj):
    if callable(getattr(obj, i)):
        print(i)

実行結果は以下のとおりです。

Workbook
load_workbook
open

先ほどの単なるdir関数の結果より、かなり少なくなっています。

サンプルスクリプトで行っている処理

サンプルスクリプトで行っている処理は以下のとおりです。

dir関数で取得したオブジェクトの識別子に対してfor文を回して、
  obj = openpyxl
  for i in dir(obj):

getattr関数で取得した属性が、呼び出し可能(callable)なときに、
      if callable(getattr(obj, i)):

printを行っています。
          print(i)

最終更新日時:2020-05-27 19:33

[スポンサードリンク]

Home » Python » オブジェクトのメソッド一覧的なものを取得するーdir・callable・getattr関数

「Python」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.