1

最初の免責事項:私はコンパイラを書いているので、これは黒いブードゥー教のものです. 私はそれを知っています、私は防護服を着ました、そして私はそれをしません 他の簡単な方法を見つけることができれば。

ソース テキストは標準の python であり、使用可能なすべての実行時の型操作を使用して別のものに変換します。つまり、すべての標準タイプがメタデータで強化されています。現在、List はリーフ タイプではなく、標準の唯一のタイプです。( dict は同じカテゴリにありますが、まだ変換しようとはしていません。同じ問題が発生する可能性があります)。リーフ型 (int、str、bool、float) はクラスと同様に問題ありません。

[]標準リストを私の拡張リスト データ型でエレガントに置き換えるには、1 つ急ぎます。リストを返す代わりに、Python テキストでトークンのデフォルトの動作を変更したいと思います。リストのような型を返す必要があります。

しかし、このトークンを傍受する方法がわかりません。list(経由sys.modules[__builtins__]でトークンをオーバーライドできますが、手の[]届かないところにあるようです。)

何か案が ?

4

1 に答える 1

2

hereで述べたように、python ではその構文をオーバーライドすることはできません。

ただし、この回答には、役立つ可能性のあるハックが含まれています (おそらくそうではありません)。

于 2013-06-07T07:56:02.223 に答える