さまざまなサブモジュールからクラスを初期化できるプログラムを作成しようとしています。将来、モジュールの拡張を容易にするために、コンストラクタ関数といくつかのキー関数を辞書に格納したいと考えています。私は属性として認識されていない関数の問題を取得しており、これをどのように修正するかは特定できません。コンストラクタにとってはうまくいくようです。 my_class.pyインサイド辞書をPythonで辞書に保存
import my_class
class_ctor = {"my_class":my_class.my_class, ...}
class_func = {"my_class":my_class.my_class.func, ...}
my_inst = class_ctor["my_class"](what,ever,arguments)
my_inst.class_func["my_class"](some,other,arguments)
:
class my_class:
def __init__(self):
...
def func(...):
...
私はこのような何かを達成できる方法はありますコードは次のようになりますか?私は同様の方法で動作するディスパッチャを持ついくつかの例を見てきましたが、これをメソッドに抽象化したいと思います。
ご協力いただきありがとうございます。
何が問題なのですか? –
これをすべて行う必要はありません。クラスを拡張したい場合は、親クラスを子クラスとして継承することができます –
プログラムを実行すると、「my_classにはfuncという属性はありません」と表示されます。 私はクラスを継承しようとしていません。私はプログラムの主要な部分を持っています。これは、ユーザーが実行したいと思っているさまざまなクラスから関数を呼び出すディスパッチャのようなものです。 – Grimey