が、私はそれが私の猿を行う方法Real
クラスPythonの:どのようにモンキーパッチ(スワップ)クラス
from a import Real
Real().print_stuff()
を使用するモジュールで、次の2つのクラスモジュールb
でa
class Real(object):
...
def print_stuff(self):
print 'real'
class Fake(Real):
def print_stff(self):
print 'fake'
を考えてみましょうしますパッチを適用してb
をインポートするとReal
が実際にFake
と交換されますか?
初期化スクリプトでこれを行うようにしようとしていましたが、動作しません。
if env == 'dev':
from a import Real, Fake
Real = Fake
私の目的は、開発モードでFakeクラスを使用することです。
この初期化スクリプトとは、元のプログラムの先頭で実行される別の '.py'スクリプトです。 –
はい、これはDjangoアプリです。そのため、initスクリプトはapp.pyにありますが、これは一般的な目的では言及していませんでした。 –