私のプログラムGarlicSimで作業しています。ユーザーがシミュレーションを作成し、希望どおりに操作してファイルに保存することができます。Python:モジュールを酸洗する代わりに
私は最近、保存機能を実装しようとしました。私に起こった自然なことは、シミュレーション全体を含むProject
オブジェクトをピケッと拾うことです。
問題は、Project
オブジェクトにはモジュールも含まれています。これは「シミュレーションパッケージ」です。これは、シミュレーションを定義するいくつかの重要なオブジェクト、主に関数を含むパッケージ/モジュールです。私はシミュレーションと一緒にそれらを保存する必要がありますが、私はProject
オブジェクトをピケッとしようとした時に目撃し、例外が発生したので、モジュールをピケッとすることは不可能であるようです。
この制限を回避するにはどうすればよいでしょうか?
(私もシミュレーションパッケージは、プログラム内で動的にインポートされることに注意してください。)
あなたが意味し、代わりに動的にインポートされたモジュールへの参照を、内部で定義されたクラスへの参照にします動的にインポートされたモジュール? –
はい。動的にモジュールをインポートするよりも、クラスを動的にインスタンス化するほうがきれいに見えます。 – djc
それは面白いです。しかし、私はそれが少し問題だと思う。私のプログラムの仕組みは、ユーザーがインポートするシミュレーションパッケージを選択することです。すなわち、様々なタイプのシミュレーション(例えば、ニュートン物理学のためのもの、ゲーム理論のためのものなど)のためのあらかじめ書かれたシミュレーションパッケージがある。これらのあらかじめ書いたパッケージの中に一つのクラスを定義して、すべてのオブジェクトをそのクラスの属性にすることをお勧めしますか? –