pythonのイントロスペクションとは何ですか

**イントロスペクションとは何ですか? ****

日常生活では、内省は自己検査行動です。

コンピュータプログラミングでは、イントロスペクションとは、何かを調べて、それが何であるか、何を知っているか、何ができるかを判断する機能を指します。イントロスペクションは、プログラマーに優れた柔軟性と制御を提供します。

より簡単かつ率直に言うと、イントロスペクションとは、オブジェクト指向の言語で記述されたプログラムが実行されているときに、オブジェクトのタイプを知る機能です。一言で言えば、オブジェクトのタイプは実行時に知ることができます。

たとえば、python、buby、object-C、c ++はすべて、内省する機能を備えています。C++の内省能力は最も弱く、タイプを知ることしかできませんが、pythonはタイプと属性を知ることができます。

イントロスペクションを理解するための最良の方法は、例を使用することです:タイプイントロスペクションこれは、さまざまなプログラミング言語でのイントロスペクションの例です(このリンクの例は非常に重要です。物語を通してイントロスペクションが何であるかを理解するのは難しいかもしれませんが、これらの例を通してあなたは理解することができます)

Pythonに戻ると、Pythonでのより一般的なイントロスペクションメカニズム(関数の使用法)は、dir()、type()、hasattr()、isinstance()です。これらの関数を通じて、プログラムの実行中のオブジェクトのステータスを知ることができます。タイプして、オブジェクトに特定のプロパティがあるかどうかを判断し、オブジェクトのプロパティにアクセスします。

dir()

dir()関数は、おそらくPythonのイントロスペクションメカニズムの最も有名な部分です。渡されたオブジェクトの属性名のソートされたリストを返します。オブジェクトが指定されていない場合、dir()は現在のスコープ内の名前を返します。 dir()関数をキーワードモジュールに適用して、それが何を明らかにするかを観察してみましょう。

import keyword
 dir(keyword)['__all__','__builtins__','__doc__','__file__','__name__','__package__','iskeyword','kwlist','main']

type()

type()関数は、オブジェクトが文字列であるか整数であるか、または他のタイプのオブジェクトであるかを判別するのに役立ちます。これは、typesモジュールで定義された型と比較できる型オブジェクトを返すことによって行われます。

type(42)<class'int'type([])<class'list'

**isinstance() **

isinstance()関数を使用してオブジェクトをテストし、それが特定のタイプまたはカスタムクラスのインスタンスであるかどうかを判断できます。

isinstance("python", str)
True

pythonイントロスペクションでのヘルプ使用の拡張:

pythonのIDLEを開き、pythonインタープリターを入力します。pythonインタープリター自体がメインモジュールと見なされ、インタープリタープロンプトで知りたい情報を入力するため、最初にヘルプを求めます。 help、次にhelp()と入力し、helpユーティリティを入力し、プロンプトキーワードとモジュールに従って、pythonのキーワードと、pythonに付属するモジュールを理解するか、追加でインストールして定義します。終了する場合は、「q」と入力します。 '、Enterキーを押します。

オブジェクトを理解したい場合(pythonのすべてのオブジェクトはオブジェクトと見なすことができます)、helpとhelp()を要求することもできますが、オブジェクトの名前をhelp(print)などのhelp(object)の形式で括弧内に入力する必要があります。対象の内省コンテンツが多すぎて、コンテンツの一部しか貼り付けないものもあります。

 help
Type help()for interactive help, or help(object)for help about object.help()

Welcome to Python 3.6's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.6/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit"....
help  keywords

Here is a list of the Python keywords. Enter any keyword to get more help.

False        def         if         raise
None        del         importreturn
True        elif        intry
and         else        is         whileas         except       lambda       with
assert       finally       nonlocal      yieldbreakfor         not         
classfrom        or         
continue      global       pass        

help  modules

Please wait a moment while I gather a list of all available modules...

PIL         base64       idlelib       runpy
__ future__     bdb         idna        runscript
__ main__      binascii      idna_ssl      sched
_ ast        binhex       imaplib       scrolledlist
_ asyncio      bisect       imghdr       search
_ bisect       browser       imp         
...
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".help('print')
Help on built-infunction print in module builtins:print(...)print(value,..., sep=' ', end='\n', file=sys.stdout, flush=False)
  
 Prints the values to a stream, or to sys.stdout by default.
 Optional keyword arguments:
 file: a file-like object(stream); defaults to the current sys.stdout.
 sep:  string inserted between values,default a space.
 end:  string appended after the last value,default a newline.
 flush: whether to forcibly flush the stream.

これまでのところ、pythonイントロスペクションとは何かに関するこの記事が紹介されています。関連するpythonイントロスペクションについては、ZaLou.Cnで以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後、ZaLou.Cnをさらにサポートしていただければ幸いです。

Recommended Posts

pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
pythonのリスト内包表記とは何ですか
Pythonの匿名関数とは何ですか
Pythonのシーケンステーブルとは
pythonでのadbの機能は何ですか
Python変数スコープとは
pythonに関数のオーバーロードはありますか
Pythonでのrc1の意味
pythonのdefは何をしますか
Pythonの用途は何ですか
Pythonの数字は何ですか?
Pythonのすべてがオブジェクトです
npはpythonで何をしますか
Python 3.9が登場!
pythonの関数
python変数の範囲は何ですか
pythonのid関数は何ですか
python開発の見通しは何ですか
pythonの数値は可変型ですか
pythonの関数本体は何ですか
Pythonは主にどの方向に使用されます
pythonにヘルパー関数はありますか
pythonのタブキーはどういう意味ですか
pythonとpycharmの違いは何ですか
Pythonの内省と考察
なぜpythonが人気なのか
03.Pythonエントリの演算子
Pythonはゆっくりと衰退しています
Pythonでできること
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用
PythonのStr文字列
Pythonでの計算ジオメトリ
同期Pythonと非同期Pythonの違いは何ですか?
エンタープライズ言語に対するpythonの利点は何ですか
Pythonの無限ループに必要な条件
pythonでファイルを開く方法は何ですか
Pythonでの同時リクエスト(パート2)
pythonクラスの属性とは何ですか
pythonは解釈された言語ですか?
Pythonでの継承について話す
pythonは解釈された言語ですか
pythonクローラーは何をクロールできますか
Python3.9の注目すべき更新ポイント
pythonが使用できるデータベース
Pythonアプリケーションを3分でコンテナ化
pythonコレクションでできること
Pythonは短い_SVMテストです
pythonコードは大文字と小文字を区別しますか
Pythonのジェネレーターとイテレーター
Pythonで文字列について話す
pythonでのwheelの使用法
Pythonの対数法の要約