2017-12-03 10 views
2

こんにちは皆、モンキーパッチのPythonの構文解析

は私が研究のためsympyを使用し、自分がInteger(1)/k(、実際には、すでにInteger(1)/Integer(k)を簡略化したものである)たくさんのようなものを書いて見つけています。

私はちょうど1/kを書くことができるように、sympyのものと一緒にpythonのデフォルトの整数クラスを "monkeypatch"する方法があるのだろうかと思います。

のみint(4)などの呼び出しを変更する(プラスそこsympyのIntegerクラスがintを使用しているため、最大の再帰の問題があるが、これは異なっている)、私は__builtins__.intをオーバーロードしようとしたが、それは私が欲しいものは変更されません。

Pythonがコードを解析する方法を変更する簡単な方法(Cコードなし)がありますか?事前に

多くの感謝:)

答えて

1

、他のすべてを壊すことなく行うのは難しいだろうようにこれがそうです。あなたが見た最大再帰問題は、これの最初の症状です。

私は単純なアプローチを提案することができる:あなたは、ファイル/ライブラリに行う最初のものとして

I = sympy.Integer 

を実行し、あなたが代わりに多くの方が簡単です

I(1)/k 

を呼び出すことができます書きます。