Python - dir() 関数

Oct 17, 2016 pm 02:51 PM

dir() 関数

中国語の説明:

組み込みの dir 関数を使用して、モジュール定義の識別子をリストできます。識別子には、関数、クラス、変数が含まれます。

dir() にモジュール名を指定すると、モジュールによって定義された名前のリストが返されます。引数が指定されていない場合は、現在のモジュールで定義されている名前のリストが返されます。

まず、入力 sys モジュールで dir を使用する方法を見てみましょう。膨大なプロパティのリストが含まれていることがわかります。

次に、引数を渡さずに dir 関数を使用します。デフォルトでは、現在のモジュールのプロパティ リストが返されます。インポートされたモジュールもリストの一部であることに注意してください。

dir の効果を観察するために、新しい変数 a を定義してそれに値を代入し、上記と同じ値がリストに追加されていることを確認します。 del ステートメントを使用して現在のモジュールの変数/プロパティを削除します。この変更は再び dir の出力に反映されます。

del についてのちょっとしたメモ - このステートメントは、実行後に変数/名前を削除するために使用されます。この例では、del a、変数 a は使用できなくなり、変数 a は存在しなかったかのようになります。

バージョン:

この関数はすべてのバージョンでサポートされており、python3 でも引き続き使用できます。

コード例:

>>> import struct
>>> dir()   # show the names in the module namespace
['__builtins__', '__doc__', '__name__', 'struct']
>>> dir(struct)   # show the names in the struct module
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
 '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
>>> class Shape(object):
        def __dir__(self):
            return ['area', 'perimeter', 'location']
>>> s = Shape()
>>> dir(s)
['area', 'perimeter', 'location']
ログイン後にコピー

英語の説明:

dir([object])

引数を指定しない場合は、現在のローカル スコープ内の名前のリストを返します。 引数を指定すると、有効な名前のリストを返します。オブジェクトに __dir__() という名前のメソッドがある場合、このメソッドが呼び出され、属性のリストを返す必要があります。これにより、カスタム __getattr__() または __getattribute__() 関数を実装するオブジェクトが方法をカスタマイズできるようになります。 dir() はその属性を報告します。

オブジェクトが __dir__() を提供しない場合、関数はオブジェクトの __dict__ 属性 (定義されている場合) およびその型オブジェクトから情報を収集しようと最善を尽くします。結果として得られるリストは必ずしも完全ではありません。オブジェクトにカスタム __getattr__() がある場合は不正確になる可能性があります。

デフォルトの dir() メカニズムは、完全ではなく最も関連性の高い情報を生成しようとするため、オブジェクトのタイプによって動作が異なります。がモジュール オブジェクトである場合、リストにはモジュールの属性の名前が含まれます。

オブジェクトが型またはクラス オブジェクトの場合、リストにはその属性の名前が含まれ、そのベースの属性の名前が再帰的に含まれます。

それ以外の場合、リストには、オブジェクトの属性の名前、そのクラスの属性の名前、およびそのクラスの基本クラスの属性の再帰的な名前が含まれます。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

Python 3.6のロードピクルスファイルエラーmodulenotfounderror:ピクルスファイル「__builtin__」をロードした場合はどうすればよいですか? Python 3.6のロードピクルスファイルエラーmodulenotfounderror:ピクルスファイル「__builtin__」をロードした場合はどうすればよいですか? Apr 02, 2025 am 06:27 AM

Python 3.6のピクルスファイルの読み込みエラー:modulenotfounderror:nomodulenamed ...

Scapy Crawlerを使用するときにパイプラインファイルを書き込めない理由は何ですか? Scapy Crawlerを使用するときにパイプラインファイルを書き込めない理由は何ですか? Apr 02, 2025 am 06:45 AM

SCAPYクローラーを使用するときにパイプラインファイルを作成できない理由についての議論は、SCAPYクローラーを学習して永続的なデータストレージに使用するときに、パイプラインファイルに遭遇する可能性があります...

See all articles