5

peepholeのような内部モジュールでは、 の引数は.LOAD_CONSTに続く 2 バイトに格納されますopcode

たとえば、操作の引数を取得するために使用するマクロは次のように実装されます。

#define GETARG(arr, i) ((int)((arr[i+2]<<8) + arr[i+1]))

の引数は、配列LOAD_CONSTへのインデックスです。consts

したがって、Python 関数では最大 2 ^ 16 個の定数しか使用できないのではないかと推測しました。

しかし、66666 (> 65536) の定数を使用する関数を試してみると、正常に動作します。

その理由は何ですか?

4

1 に答える 1