私は知っています、私は知っています、それは汚れています。__init__
Python モジュールのモジュールをハイジャックして、自分のモジュールに置き換えることが可能かどうかを知りたいです。
django libがinitプロセスの一部を開始して構成でクラッシュするのを防ぐ必要があるため、私はそれを求めています。
はい、django lib を修正してパッチを送り返す方がよいでしょう。はい、私はそれについて著者と連絡を取り合っています。しかし、今のところ、迅速な修正が必要です。
私は知っています、私は知っています、それは汚れています。__init__
Python モジュールのモジュールをハイジャックして、自分のモジュールに置き換えることが可能かどうかを知りたいです。
django libがinitプロセスの一部を開始して構成でクラッシュするのを防ぐ必要があるため、私はそれを求めています。
はい、django lib を修正してパッチを送り返す方がよいでしょう。はい、私はそれについて著者と連絡を取り合っています。しかし、今のところ、迅速な修正が必要です。
インポート手順をハイジャックする1つの方法は、モンキーパッチを適用するモジュールの前にインポートされる別のモジュールで、インポートが実行される前にインポートをシミュレートすることです。モジュールの名前をキーとして必要なものを挿入するsys.modules
と、元のモジュールをインポートするときに、Pythonがエントリを見つけてsys.modules
それを使用します。インポートがなんらかの魔法の方法で行われる場合、これは機能しない可能性があります。
一方、元のプロジェクトをコピーして、好みに合わせてパッチを適用することもできます。
__init__.py
ファイルを編集するだけです。あなたを止めるものは何もありません、そしてあなたがそれを正しくやれば悪いことは何も起こりません。