Python初心者必見!help()とdir()で公式ドキュメントを使いこなす探索術
Pythonを学び始めると、 countless 関数やモジュール、クラスといった新しい概念に次々と出会います。その使い方を調べるために、多くの方がまずWeb検索に頼るのではないでしょうか。しかし、Pythonには、インターネットに接続せずとも、手元の環境だけで公式ドキュメントの情報を引き出せる強力なツールが備わっています。それが組み込み関数のhelp()
とdir()
です。
この記事では、Pythonの学習を始めたばかりの方や、公式ドキュメントのどこを読めばよいか分からず困ってしまうことが多い方を対象に、help()
とdir()
を駆使して、必要な情報を自力で探し出す「リファレンス探索術」を丁寧に解説します。この2つの関数を使いこなせれば、Web検索に頼る頻度が減り、より速く、より正確にPythonの理解を深めることができるようになります。
help()とdir()の基本 – 何ができてどう違う?
help()
とdir()
は、どちらもPythonオブジェクトの情報を調べるための「イントロスペクション(introspection)」ツールです。イントロスペクションとは、プログラムが実行中に自分自身の構造や状態を調べる能力のことで、簡単に言えば「オブジェクトに『あなたは何者ですか?』と尋ねる」機能です。まずは、それぞれの役割と基本的な違いを理解しましょう。
関数 | 主な役割 | 得られる情報 | 使いどころ |
---|---|---|---|
help(オブジェクト) |
「使い方」を詳しく知る | オブジェクトの公式説明文(ドックストリング)、関数の引数、メソッド一覧など、詳細なドキュメント | 特定の関数やクラスの具体的な使い方を知りたいとき |
dir(オブジェクト) |
「何ができるか」の一覧を見る | オブジェクトが持つ属性やメソッドの名前リスト | そのオブジェクトにどんな機能があるかをざっと把握したいとき |
この2つはセットで使うことで真価を発揮します。まずはdir()
でオブジェクトにどんな機能(メソッド)があるか名前の一覧を眺め、気になる名前を見つけたらhelp()
でその詳細な使い方を調べる、という流れが基本です。
実際に試してみましょう。Pythonの対話モード(ターミナルでpython
と入力して起動)で、文字列オブジェクトがどんな機能を持ち、その中の特定の機能はどう使うのか調べてみます。
# 文字列オブジェクトを作成
my_string = "hello python"
# dir()で文字列が持つ機能(メソッド)の一覧を表示
print(dir(my_string))
# 出力例: ['__add__', ..., 'capitalize', 'center', ..., 'upper', 'zfill']
# たくさんの名前が表示されますが、'upper'というのを使ってみましょう
# help()で'upper'メソッドの詳しい使い方を調べる
help(my_string.upper)
# または help(str.upper) でも同じです
help(my_string.upper)
を実行すると、upper()
メソッドが「文字列の全ての文字を大文字にして返す」という説明が表示されます。このように、dir()
で当たりをつけ、help()
で詳細を確認するのが王道の使い方です。
関数の「シグネチャ」を読み解く – 引数と戻り値を調べる
関数を使う上で最も重要な情報の一つが「シグネチャ」です。シグネチャとは、関数の名前、引数(パラメータ)、そして戻り値(返り値)の仕様を定義したものです。help()
を使うと、このシグネチャを簡単に見ることができます。
例えば、複数の値の中から最大値を見つける組み込み関数max()
のヘルプを見てみましょう。
help(max)
すると、以下のような情報が表示されます。
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
...
この出力の最初の数行がシグネチャです。ここから、max()
には2通りの使い方があることがわかります。ひとつはリストのような「イテラブル(iterable)」を1つ渡す方法、もうひとつは複数の値を直接引数として渡す方法です。また、-> value
という表記は、この関数が「値を返す」ことを示しています。
このように、help()
の出力の冒頭部分を見れば、その関数がどんな引数を必要とし、何を返してくれるのかが一目瞭然です。
モジュール・クラス・関数を探索する具体例
それでは、Pythonの標準ライブラリを題材に、未知の機能をhelp()
とdir()
で探索する流れを体験してみましょう。
1. モジュールの全体像を把握する (mathモジュール)
「数学的な計算がしたいな」と思ったら、まずはmath
モジュールを疑います。どんな機能があるか見てみましょう。
import math
# mathモジュールに何が含まれているか一覧で見る
print(dir(math))
# 出力例: ['__doc__', ..., 'acos', 'asin', ..., 'pi', 'pow', 'sin', 'sqrt', ...]
dir(math)
の結果から、三角関数のsin
や平方根のsqrt
、円周率のpi
など、様々な数学関連の関数や定数が含まれていることが推測できます。全体の機能についてもっと知りたければ、help(math)
を実行します。すると、各関数の一行説明などが表示され、モジュール全体の概要を掴むことができます。
2. クラスの構造とメソッドを調べる (datetimeモジュール)
次に、「今日の日付を取得したい」というケースを考えます。日付や時刻はdatetime
モジュールが扱っています。中を覗いてみましょう。
import datetime
# help()でdatetimeクラスについて調べる
help(datetime.datetime)
出力結果は長くなりますが、「Methods defined here:」というセクションに注目してください。ここには、datetime
オブジェクトが使えるメソッドが一覧になっています。その中にtoday()
やnow()
といった、いかにも現在日時を取得できそうな名前が見つかります。さらに詳しく知りたい場合は、help(datetime.datetime.today)
とすることで、特定のメソッドだけの詳細な説明を読むことができます。
3. 関数の使い方を具体的に知る (osモジュール)
最後に、「今作業しているフォルダのパスを知りたい」という場合です。これはOSの操作に関わることなので、os
モジュールが関係ありそうです。
import os
# "directory" や "path" に関連しそうな名前を探す
# dir()の結果から 'getcwd' (get current working directoryの略) を見つけたとします
'getcwd' in dir(os)
# 出力: True (getcwdという名前が存在する)
# getcwdのヘルプを見る
help(os.getcwd)
help(os.getcwd)
を実行すると、「現在の作業ディレクトリを表す文字列を返す」といった説明が表示されます。引数は不要で、呼び出すだけでパスが取得できることがわかります。このように、dir()
で当たりをつけ、help()
で確証を得る、という流れが非常に有効です。
ドキュメント探索で迷子にならないための考え方
公式ドキュメントは情報量が膨大です。効率よく目的の情報にたどり着くには、次のような考え方(メンタルモデル)を持つと良いでしょう。
- 大枠から捉える: いきなり関数名で探すのではなく、「〇〇をしたいから、△△モジュールあたりかな?」と、まずは大きなカテゴリ(モジュール)から考えます。
dir()
で当たりをつける: モジュールやオブジェクトに対してdir()
を使い、関係ありそうな名前の候補をいくつかピックアップします。完璧な名前でなくても、推測で構いません。help()
で絞り込む: 候補に挙げた名前それぞれにhelp()
を実行し、説明を読んで自分のやりたいことと合っているかを確認します。- 試して、繰り返す: 思っていた機能と違ったら、前のステップに戻って別の候補を試します。この試行錯誤のプロセスが、結果的にPythonの知識を深めることにつながります。
この「全体から詳細へ」という探索プロセスを意識することで、膨大な情報に溺れることなく、効率的に学習を進めることができます。
初心者が陥りがちなつまずきポイントと対処法
- 出力が英語で難しい…
- Pythonの公式ドキュメントは基本的に英語です。しかし、使われる単語はある程度決まっています。まずは関数のシグネチャ(引数など)と、もしあればコード例(Example)に注目しましょう。文章が難しくても、コードを見れば使い方のイメージが掴めることが多いです。
- help()の情報量が多すぎる!
- 大きなモジュールやクラスのヘルプは長大です。一度に全部を読もうとせず、
METHODS
やFUNCTIONS
といった見出しを頼りに、関心のある部分だけを拾い読みするのがコツです。目的の機能が分かっているなら、help(str.split)
のように、オブジェクトを絞ってヘルプを表示させましょう。 - dir()の
__
で始まる名前は何? __init__
のようにアンダースコアが2つ付いている名前は「特殊メソッド」と呼ばれ、主にPythonの内部的な仕組みで使われます。初心者のうちは、これらの名前は一旦無視して、アルファベットで始まる通常のメソッド名に注目すれば大丈夫です。
help()とdir()を補助する便利なツール
Pythonには、help()
とdir()
以外にも、オブジェクトの調査に役立つ機能があります。
type(オブジェクト)
: オブジェクトの「型」(どのクラスから作られたか)を調べます。未知のオブジェクトの正体を知る第一歩になります。オブジェクト.__doc__
:help()
が表示する説明文(ドックストリング)だけを文字列として取得できます。print(print.__doc__) のように使います。- Jupyter Notebookの
?
とShift+Tab
: Jupyter Notebook環境では、オブジェクト名の後ろに?
を付けて実行するとhelp()
と同様の情報が表示されます。また、関数のカッコ内でShift+Tab
キーを押すと、引数のヒントがポップアップ表示され、非常に便利です。
まとめ
今回は、Pythonの組み込み関数help()
とdir()
を使って、公式ドキュメントの情報を効率的に引き出す方法について解説しました。これらの関数は、Pythonを学ぶ上で非常に強力な味方になります。
Web検索で断片的な情報を探すのも一つの手ですが、手元の環境で直接、信頼性の高い公式ドキュメントにアクセスできることの価値は計り知れません。「困ったらまずhelp()
を試す」という習慣を身につけることで、問題解決能力が飛躍的に向上し、Pythonプログラミングの学習がさらに楽しく、効率的なものになるでしょう。ぜひ、今日からあなたのコード学習にhelp()
とdir()
を取り入れてみてください。
“`
—
(引用タグを除去した最終HTML)
—
“`html
Python初心者必見!help()とdir()で公式ドキュメントを使いこなす探索術
Pythonを学び始めると、 countless 関数やモジュール、クラスといった新しい概念に次々と出会います。その使い方を調べるために、多くの方がまずWeb検索に頼るのではないでしょうか。しかし、Pythonには、インターネットに接続せずとも、手元の環境だけで公式ドキュメントの情報を引き出せる強力なツールが備わっています。それが組み込み関数のhelp()
とdir()
です。
この記事では、Pythonの学習を始めたばかりの方や、公式ドキュメントのどこを読めばよいか分からず困ってしまうことが多い方を対象に、help()
とdir()
を駆使して、必要な情報を自力で探し出す「リファレンス探索術」を丁寧に解説します。この2つの関数を使いこなせれば、Web検索に頼る頻度が減り、より速く、より正確にPythonの理解を深めることができるようになります。
help()とdir()の基本 – 何ができてどう違う?
help()
とdir()
は、どちらもPythonオブジェクトの情報を調べるための「イントロスペクション(introspection)」ツールです。イントロスペクションとは、プログラムが実行中に自分自身の構造や状態を調べる能力のことで、簡単に言えば「オブジェクトに『あなたは何者ですか?』と尋ねる」機能です。まずは、それぞれの役割と基本的な違いを理解しましょう。
関数 | 主な役割 | 得られる情報 | 使いどころ |
---|---|---|---|
help(オブジェクト) |
「使い方」を詳しく知る | オブジェクトの公式説明文(ドックストリング)、関数の引数、メソッド一覧など、詳細なドキュメント | 特定の関数やクラスの具体的な使い方を知りたいとき |
dir(オブジェクト) |
「何ができるか」の一覧を見る | オブジェクトが持つ属性やメソッドの名前リスト | そのオブジェクトにどんな機能があるかをざっと把握したいとき |
この2つはセットで使うことで真価を発揮します。まずはdir()
でオブジェクトにどんな機能(メソッド)があるか名前の一覧を眺め、気になる名前を見つけたらhelp()
でその詳細な使い方を調べる、という流れが基本です。
実際に試してみましょう。Pythonの対話モード(ターミナルでpython
と入力して起動)で、文字列オブジェクトがどんな機能を持ち、その中の特定の機能はどう使うのか調べてみます。
# 文字列オブジェクトを作成
my_string = "hello python"
# dir()で文字列が持つ機能(メソッド)の一覧を表示
print(dir(my_string))
# 出力例: ['__add__', ..., 'capitalize', 'center', ..., 'upper', 'zfill']
# たくさんの名前が表示されますが、'upper'というのを使ってみましょう
# help()で'upper'メソッドの詳しい使い方を調べる
help(my_string.upper)
# または help(str.upper) でも同じです
help(my_string.upper)
を実行すると、upper()
メソッドが「文字列の全ての文字を大文字にして返す」という説明が表示されます。このように、dir()
で当たりをつけ、help()
で詳細を確認するのが王道の使い方です。
関数の「シグネチャ」を読み解く – 引数と戻り値を調べる
関数を使う上で最も重要な情報の一つが「シグネチャ」です。シグネチャとは、関数の名前、引数(パラメータ)、そして戻り値(返り値)の仕様を定義したものです。help()
を使うと、このシグネチャを簡単に見ることができます。
例えば、複数の値の中から最大値を見つける組み込み関数max()
のヘルプを見てみましょう。
help(max)
すると、以下のような情報が表示されます。
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
...
この出力の最初の数行がシグネチャです。ここから、max()
には2通りの使い方があることがわかります。ひとつはリストのような「イテラブル(iterable)」を1つ渡す方法、もうひとつは複数の値を直接引数として渡す方法です。また、-> value
という表記は、この関数が「値を返す」ことを示しています。
このように、help()
の出力の冒頭部分を見れば、その関数がどんな引数を必要とし、何を返してくれるのかが一目瞭然です。
モジュール・クラス・関数を探索する具体例
それでは、Pythonの標準ライブラリを題材に、未知の機能をhelp()
とdir()
で探索する流れを体験してみましょう。
1. モジュールの全体像を把握する (mathモジュール)
「数学的な計算がしたいな」と思ったら、まずはmath
モジュールを疑います。どんな機能があるか見てみましょう。
import math
# mathモジュールに何が含まれているか一覧で見る
print(dir(math))
# 出力例: ['__doc__', ..., 'acos', 'asin', ..., 'pi', 'pow', 'sin', 'sqrt', ...]
dir(math)
の結果から、三角関数のsin
や平方根のsqrt
、円周率のpi
など、様々な数学関連の関数や定数が含まれていることが推測できます。全体の機能についてもっと知りたければ、help(math)
を実行します。すると、各関数の一行説明などが表示され、モジュール全体の概要を掴むことができます。
2. クラスの構造とメソッドを調べる (datetimeモジュール)
次に、「今日の日付を取得したい」というケースを考えます。日付や時刻はdatetime
モジュールが扱っています。中を覗いてみましょう。
import datetime
# help()でdatetimeクラスについて調べる
help(datetime.datetime)
出力結果は長くなりますが、「Methods defined here:」というセクションに注目してください。ここには、datetime
オブジェクトが使えるメソッドが一覧になっています。その中にtoday()
やnow()
といった、いかにも現在日時を取得できそうな名前が見つかります。さらに詳しく知りたい場合は、help(datetime.datetime.today)
とすることで、特定のメソッドだけの詳細な説明を読むことができます。
3. 関数の使い方を具体的に知る (osモジュール)
最後に、「今作業しているフォルダのパスを知りたい」という場合です。これはOSの操作に関わることなので、os
モジュールが関係ありそうです。
import os
# "directory" や "path" に関連しそうな名前を探す
# dir()の結果から 'getcwd' (get current working directoryの略) を見つけたとします
'getcwd' in dir(os)
# 出力: True (getcwdという名前が存在する)
# getcwdのヘルプを見る
help(os.getcwd)
help(os.getcwd)
を実行すると、「現在の作業ディレクトリを表す文字列を返す」といった説明が表示されます。引数は不要で、呼び出すだけでパスが取得できることがわかります。このように、dir()
で当たりをつけ、help()
で確証を得る、という流れが非常に有効です。
ドキュメント探索で迷子にならないための考え方
公式ドキュメントは情報量が膨大です。効率よく目的の情報にたどり着くには、次のような考え方(メンタルモデル)を持つと良いでしょう。
- 大枠から捉える: いきなり関数名で探すのではなく、「〇〇をしたいから、△△モジュールあたりかな?」と、まずは大きなカテゴリ(モジュール)から考えます。
dir()
で当たりをつける: モジュールやオブジェクトに対してdir()
を使い、関係ありそうな名前の候補をいくつかピックアップします。完璧な名前でなくても、推測で構いません。help()
で絞り込む: 候補に挙げた名前それぞれにhelp()
を実行し、説明を読んで自分のやりたいことと合っているかを確認します。- 試して、繰り返す: 思っていた機能と違ったら、前のステップに戻って別の候補を試します。この試行錯誤のプロセスが、結果的にPythonの知識を深めることにつながります。
この「全体から詳細へ」という探索プロセスを意識することで、膨大な情報に溺れることなく、効率的に学習を進めることができます。
初心者が陥りがちなつまずきポイントと対処法
- 出力が英語で難しい…
- Pythonの公式ドキュメントは基本的に英語です。しかし、使われる単語はある程度決まっています。まずは関数のシグネチャ(引数など)と、もしあればコード例(Example)に注目しましょう。文章が難しくても、コードを見れば使い方のイメージが掴めることが多いです。
- help()の情報量が多すぎる!
- 大きなモジュールやクラスのヘルプは長大です。一度に全部を読もうとせず、
METHODS
やFUNCTIONS
といった見出しを頼りに、関心のある部分だけを拾い読みするのがコツです。目的の機能が分かっているなら、help(str.split)
のように、オブジェクトを絞ってヘルプを表示させましょう。 - dir()の
__
で始まる名前は何? __init__
のようにアンダースコアが2つ付いている名前は「特殊メソッド」と呼ばれ、主にPythonの内部的な仕組みで使われます。初心者のうちは、これらの名前は一旦無視して、アルファベットで始まる通常のメソッド名に注目すれば大丈夫です。
help()とdir()を補助する便利なツール
Pythonには、help()
とdir()
以外にも、オブジェクトの調査に役立つ機能があります。
type(オブジェクト)
: オブジェクトの「型」(どのクラスから作られたか)を調べます。未知のオブジェクトの正体を知る第一歩になります。オブジェクト.__doc__
:help()
が表示する説明文(ドックストリング)だけを文字列として取得できます。print(print.__doc__) のように使います。- Jupyter Notebookの
?
とShift+Tab
: Jupyter Notebook環境では、オブジェクト名の後ろに?
を付けて実行するとhelp()
と同様の情報が表示されます。また、関数のカッコ内でShift+Tab
キーを押すと、引数のヒントがポップアップ表示され、非常に便利です。
まとめ
今回は、Pythonの組み込み関数help()
とdir()
を使って、公式ドキュメントの情報を効率的に引き出す方法について解説しました。これらの関数は、Pythonを学ぶ上で非常に強力な味方になります。
Web検索で断片的な情報を探すのも一つの手ですが、手元の環境で直接、信頼性の高い公式ドキュメントにアクセスできることの価値は計り知れません。「困ったらまずhelp()
を試す」という習慣を身につけることで、問題解決能力が飛躍的に向上し、Pythonプログラミングの学習がさらに楽しく、効率的なものになるでしょう。ぜひ、今日からあなたのコード学習にhelp()
とdir()
を取り入れてみてください。
“`
Sources
help
hatenablog.com
itmedia.co.jp
zenn.dev