動作検証バージョン: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)
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関数