これは私がここで尋ねた質問の続きですが、その時点では明確にするのに十分な知識がありませんでした...
つまり、基本クラスと派生クラスがあります。基本クラスは、派生クラスのインスタンスを作成するために使用されるパラメーターを知る必要があります (これにより、それらをディスクに格納し、後で派生インスタンスを再作成できます)。基本クラス自体は、パラメーターを取る必要はありません。
これを行う明白な方法は、派生クラスの開発者に、そのパラメーターを基本クラスの .xml ファイルに渡すよう要求することです__init__()
。ただし、可能であれば、より自動化したいと考えています。不一致を取得するのは簡単な間違いであり、基本クラスの要点は、派生クラスを開発する人から機械を隠すことです。
私はこの解決策を思いつきました - このアプローチに何か問題がありますか?
class Base(object):
def __new__(typ, *args, **kwargs):
obj = object.__new__(typ)
obj._args = args
obj._kwargs = kwargs
return obj
class Derived(Base):
def __init__(self, arg1, arg2):
pass # obviously will do stuff here
inst = Derived('salt', arg2='pepper')
print inst, inst._args, inst._kwargs