Pythonコードオブジェクト
コードオブジェクトは、CPython実装の低レベルの詳細です。それぞれが、まだ関数にバインドされていない実行可能コードのチャンクを表します。コードオブジェクトは実行可能コードの一部を表しますが、それ自体では直接呼び出すことはできません。コードオブジェクトを実行するには、execキーワードを使用する必要があります。
次の例では、特定のコードに対してコードオブジェクトがどのように作成され、ハットコードオブジェクトに関連付けられているさまざまな属性が何であるかを示しています。
例
code_str = """ print("Hello Code Objects") """ # Create the code object code_obj = compile(code_str, '<string>', 'exec') # get the code object print(code_obj) #Attributes of code object print(dir(code_obj)) # The filename print(code_obj.co_filename) # The first chunk of raw bytecode print(code_obj.co_code) #The variable Names print(code_obj.co_varnames)
出力
上記のコードを実行すると、次の結果が得られます-
<code object <module> at 0x000001D80557EF50, file "<string>", line 2> ['__class__', '__delattr__', '__dir__', '__doc__', ……., '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', …..,posonlyargcount', 'co_stacksize', 'co_varnames', 'replace'] <string> b'e\x00d\x00\x83\x01\x01\x00d\x01S\x00' ()
-
Pythonのファイルオブジェクト?
Pythonでは、ファイルの読み取りまたは書き込みを試みるたびに、ライブラリがネイティブに処理されるため、ライブラリをインポートする必要はありません。 最初に行うことは、組み込みのopen関数を使用してファイルオブジェクトを取得することです。 open関数はファイルを開き、ファイルオブジェクトを返します。ファイルオブジェクトには、情報を取得したり、開いたファイルを操作したりするために使用できるメソッドと属性が含まれています。 ファイルとは何ですか? ファイルに対して操作を行う前に、まずファイルとは何かを理解しましょう。ファイルは、関連情報を保存するためのディスク上の名前付きの場所です。フ
-
Pythonオブジェクトからソースコードを取得する方法は?
inspectモジュールのgetsource()メソッドを使用して、関数のソースコードを取得します。 inspect.getsource(object) オブジェクトのソースコードのテキストを返します。引数は、モジュール、クラス、メソッド、関数、トレースバック、フレーム、またはコードオブジェクトです。ソースコードは単一の文字列として返されます。ソースコードを取得できない場合、IOErrorが発生します。 関数が文字列からコンパイルされているか、ストリームであるか、コンパイルされたファイルからインポートされている場合、そのソースコードを取得することはできません。 次のように、検査モジュールを