今日、Python が特定の種類のループを処理する方法について質問しました。回答の 1 つに、私の例の逆アセンブル版が含まれていました。
もっと知りたいです。自分の Python コードを逆アセンブルするにはどうすればよいですか?
今日、Python が特定の種類のループを処理する方法について質問しました。回答の 1 つに、私の例の逆アセンブル版が含まれていました。
もっと知りたいです。自分の Python コードを逆アセンブルするにはどうすればよいですか?
disモジュールを見てください:
def myfunc(alist):
return len(alist)
>>> dis.dis(myfunc)
2 0 LOAD_GLOBAL 0 (len)
3 LOAD_FAST 0 (alist)
6 CALL_FUNCTION 1
9 RETURN_VALUE
モジュールとして使用するだけdisでなく、コマンドラインツールとして実行することもできます
たとえば、Windowsでは次のように実行できます。
c:\Python25\Lib\dis.py test.py
そして、分解された結果をコンソールに出力します。
disPython 標準ライブラリのモジュールを使用します (import disたとえば、対話型インタープリターで、次にdis.dis任意の関数を使用します!-)。