pythonコードでオブジェクトやモジュールなどを調べる方法

Pythonのコードを書く時に、オブジェクトやモジュールのヘルプを見たり、モジュールや組み込み型の属性一覧を取得する方法などについて書いています。

※ 本ページはプロモーションが含まれています。

目的と動作環境

最終更新日:2021/7/7

PythonのREPLで(Pythonコードを対話的に実行するためのPythonシェル上で)、オブジェクトやモジュールについてのヘルプやドキュメントを調べたい時に使える方法について書いています。

■動作環境やバージョンは以下の通りです。
OS:macOS Big Sur(バージョン11.4)
Pythonバージョン:3.9.0

$ python -V
Python 3.9.0

help関数で、オブジェクトやモジュールのヘルプを見る

組み込み関数のhelp()は、オブジェクトやモジュールのヘルプを見る事ができます。
例えば、dict型(辞書型)のオブジェクトを作成し、そのオブジェクトをhelp()の引数に渡すと、dictのヘルプが見れます。

>>> dd = {}
>>> help(dd)

Help on dict object:

class dict(object)
 |  dict() -> new empty dictionary
〜

メソッド単体のヘルプも見れます。

>>> help(dd.clear)

Help on built-in function clear:

clear(...) method of builtins.dict instance
    D.clear() -> None.  Remove all items from D.
また、直接dictを指定してもヘルプを見れます。
>>> help(dict)

>>> help(dict.clear)

インポートしたモジュールのヘルプも見れます(ヘルプがある外部モジュールでも見れます)。

>>> import math;
>>> help(math)
〜
>>> help(math.sin)
〜

また、引数なしでhelp()を実行すると、ヘルプユーティリティが起動するので、そこでモジュールやキーワードを指定しても、ヘルプを見る事ができます。

>>> help()

Welcome to Python 3.9's help utility!
〜

help> math

Help on module math:

NAME
    math
〜

pythonのコードを書いていてモジュールの使い方などで解らない事があるとすぐにネットで調べがちですが、例えばdictにどんなメソッドがあったかを少し調べたい時にhelp()を使えばすぐに解るので、ネットで調べる必要がなくなって少しは時間短縮になると思います。

dir関数で、モジュールや組み込み型の属性一覧をリストで取得する

help()を使えばモジュールや組み込み型にどんなメソッドがあるかが分かりますが、組み込み関数のdir()でもモジュールや組み込み型の属性のリスト(メソッド一覧など)が確認できます。

>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']

>>> dir(dict)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

>>> ddd = {}
>>> dir(ddd)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
どんなメソッドがあるかを知りたいだけなら、dir()で十分です。

inspectモジュールで、オブジェクト内の情報を取得する

inspectモジュールにも、オブジェクトの情報を色々と取得できるメソッドがあります。

getdocメソッドは、オブジェクトのドキュメントを取得できます(help()と比較するとより整形されていますので、)。

>>> import inspect
>>> import sys
>>> print(inspect.getdoc(sys))
This module provides access to some objects used or maintained by the
interpreter and to functions that interact strongly with the interpreter.
〜
オブジェクトのメソッドも指定できます。
>>> print(inspect.getdoc(sys.exit))
Exit the interpreter by raising SystemExit(status).

getfileメソッドは、オブジェクトのファイルパスの情報を取得できます(オブジェクトが組み込みモジュールの場合は、TypeErrorが発生します)。

>>> import calendar
>>> print(inspect.getfile(calendar))
/Users/username/.pyenv/versions/3.9.0/lib/python3.9/calendar.py
ただ、モジュール名をそのまま入力しても同じファイルパスを取得できますね。
>>> calendar
<module 'calendar' from '/Users/username/.pyenv/versions/3.9.0/lib/python3.9/calendar.py'>

(広告)アマゾンでPythonプログラミング関連の本を探す

ネットでPythonのモジュールや組み込み型や組み込み関数について調べる時のリンク

今まではPythonコードでモジュールやオブジェクトのヘルプやドキュメント情報を見る方法について書いてきましたが、Pythonの公式サイト(モジュール索引・APIドキュメント)のリンク情報を書いておきます。

Pythonモジュール索引
日本語のPythonの標準モジュールの索引情報です。標準モジュールの使い方について日本語で調べたい時は、やはりここが良いと思います。

Python Module Index
英語版のPythonの標準モジュールの索引情報です。言語やバージョン情報を変更したい場合、ページの上部メニューバーで切り替えられます。

Python 標準ライブラリ
日本語のPythonの標準ライブラリのドキュメントページです。標準モジュールについてや、dir(),help()などの組み込み関数、str,list,dictなどの組み込み型、組み込み定数、組み込み例外についての情報があります。

The Python Standard Library
英語版のPythonの標準ライブラリのドキュメントページです。

その他(type関数でオブジェクトの型を取得)

組み込み関数のtype()は、引数で指定したオブジェクトの型を取得します。

>>> type(33)
<class 'int'>

>>> type("aaa")
<class 'str'>

何かクラスやオブジェクトのメソッドを使って値(戻り値)を取得したけどその取得した値の型が分からない時に、typeメソッドを使えばすぐに確認する事ができるので便利です。

>>> import datetime

>>> type(datetime.date.today())
<class 'datetime.date'>

>>> type(datetime.datetime.today())
<class 'datetime.datetime'>

IPythonを使う

Pythonには、IPythonという標準のPythonのREPLをさらに強化したREPLがありますが、このIPython上でもオブジェクトや変数のヘルプなどの情報を見る機能があります。

また、IPythonでは、強力なコード補完や、bashなどのシェルコマンドが使えるなどの機能があります。

IPythonのインストールや使い方については別ページで説明していますので、興味のある方はそちらを参考にしてください。
IPythonをインストールして使ってみる