0

これは私がここで尋ねた質問の続きですが、その時点では明確にするのに十分な知識がありませんでした...

つまり、基本クラスと派生クラスがあります。基本クラスは、派生クラスのインスタンスを作成するために使用されるパラメーターを知る必要があります (これにより、それらをディスクに格納し、後で派生インスタンスを再作成できます)。基本クラス自体は、パラメーターを取る必要はありません。

これを行う明白な方法は、派生クラスの開発者に、そのパラメーターを基本クラスの .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
4

0 に答える 0