Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのdir()関数とは?使い方を実例付きで解説

Pythonのdir()関数は、オブジェクトが持つ属性(アトリビュート)やメソッドの一覧をリスト形式で返す組み込み関数です。対象となるオブジェクトは、モジュール、文字列、リスト、辞書などPythonで扱えるあらゆるものが指定可能です。

この記事では、dir()関数の基本的な使い方から、さまざまな場面での活用方法まで、具体例とともにわかりやすく解説します。

引数なしでdir()を使う

dir()を引数なしで呼び出すと、プログラム実行時点で利用可能な名前(変数・関数・クラスなど)の一覧が返されます。何もインポートしていない状態で実行した場合、Pythonの起動時に自動的に用意される標準ライブラリ関連の名前が表示されます。

コード例

print(dir())

実行結果

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']

モジュールや変数を追加した場合

新しいモジュールをインポートしたり、変数を作成したりすると、それらは現在の環境(名前空間)に追加されます。そのため、dir()の出力結果にも新しく追加された名前が含まれるようになります。

コード例

import math

x = math.ceil(10.03)
print(dir())

実行結果

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'x']

先ほどの結果に比べ、インポートしたmathモジュールと作成した変数xが一覧に追加されていることが確認できます。

特定のモジュールに対するdir()

dir()にモジュールを引数として渡すことで、そのモジュール内に含まれるメソッドや属性の一覧を取得できます。以下の例では、mathモジュールで利用できる関数を確認しています。

コード例

import math

print(dir(math))

実行結果

['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', …., 'nan', … 'trunc']

このように、mathモジュールにはacosceilなどの数学関数が多数含まれていることが一目でわかります。

自作クラスに対するdir()

dir()は組み込みオブジェクトだけでなく、ユーザーが独自に定義したクラスにも適用できます。さらに、クラス内に特殊メソッド__dir__()を定義すれば、dir()が返す内容を自由にカスタマイズすることも可能です。

コード例

class moviecount:

    def __dir__(self):
        return ['Red Man','Hello Boy','Happy Monday']

movie_dtls = moviecount()

print(dir(movie_dtls))

実行結果

['Happy Monday', 'Hello Boy', 'Red Man']

__dir__()メソッドで指定したリストの内容が、そのまま出力されています。

まとめ

dir()関数は、オブジェクトの中身を手軽に調べられる便利なツールです。主なポイントは以下の通りです。

  • 引数なしで呼び出すと、現在のスコープで利用可能な名前一覧を取得できる
  • モジュールやクラスを引数に渡すと、その内部の属性・メソッド一覧を確認できる
  • クラスに__dir__()を定義すると、表示内容をカスタマイズできる

デバッグやコードの調査の際にぜひ活用してみてください。

  1. Python Tkinterのafter()メソッドの使い方を徹底解説

    Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。after()メソッドの基本構文.after(delay, FuncName=FuncName)このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新

  2. Python Tkinterのgeometry()メソッド徹底解説!ウィンドウサイズと配置を自在に制御する方法

    Pythonでは、標準ライブラリ「Tkinter」を使うことで、手軽にGUIアプリケーションを作成できます。TkinterにはGUI開発に役立つ多数のメソッドが用意されていますが、その中でもgeometry()メソッドは最も基本となる重要なメソッドの一つです。このメソッドを使うことで、作成するウィンドウのサイズや表示位置など、画面レイアウトに関するさまざまな属性を自由に設定できます。 geometry()メソッドとは geometry()メソッドは、ウィンドウの大きさを「幅x高さ」という形式の文字列で指定するためのメソッドです。サイズはピクセル単位で制御されるため、レイアウトを細かく調整したい