Python の dir() 関数
dir(obj) 関数は Python のビルトイン関数です。何もモジュールをインポートすることなく使うことができます。
dir(obj) 関数は、引数に渡した obj オブジェクトの全ての属性 (メソッドやプロパティ) を返します。
class Person:
age = 20
name = 'John Doe'
for attr in dir(Person()):
if attr.startswith('__'): # __ 始まりはスキップ
continue
print(attr)
実行結果
age
name
上のコードでは 1-3行目で Person クラスが定義されており、そこで name と age という属性が作成されています。
6行目で dir( Person() ) として、Person オブジェクトを渡しています。
for 文を使って dir 関数が返すリストの要素それぞれについて、繰り返し処理をしています。ここでは print() 関数でリストの要素を出力しています。
Python では __ で始まって終わる形式の名前は特別な用途に使われています。ここではユーザー定義の属性値を表示するために __ 始まりの値を表示しないようにしました。
引数を省略した時は、現在のローカルスコープの名前のリストを返します。