Pythonのイントロスペクション

関数、変数、およびオブジェクトは、を使用して分析できます。内省

まず、help()グローバル関数docstringの形式で提供されている場合は、ドキュメントを取得できます。

次に、print()を使用して、関数に関する情報を取得できます。

def increment(n):
    return n + 1

print(increment)

# <function increment at 0x7f420e2973a0>

またはオブジェクト:

class Dog():
    def bark(self):
        print('WOF!')

roger = Dog()

print(roger)

# <main.Dog object at 0x7f42099d3340>

ザ・type()関数はオブジェクトのタイプを提供します:

print(type(increment))
# <class 'function'>

print(type(roger)) # <class ‘main.Dog’>

print(type(1)) # <class ‘int’>

print(type(‘test’)) # <class ‘str’>

ザ・dir()グローバル関数を使用すると、オブジェクトのすべてのメソッドと属性を見つけることができます。

print(dir(roger))

# [‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘bark’]

ザ・id()グローバル関数は、任意のオブジェクトのメモリ内の場所を示します。

print(id(roger)) # 140227518093024
print(id(1))     # 140227521172384

2つの変数が同じオブジェクトを指しているかどうかを確認すると便利です。

ザ・inspect標準ライブラリモジュールは、オブジェクトに関する情報を取得するためのより多くのツールを提供します。ここで確認できます。https://docs.python.org/3/library/inspect.html


その他のPythonチュートリアル: