Pythonで派生クラスに異なるコンストラクタを使用するにはどうすればよいですか?私はこのような何かしようとした場合Python:派生クラスで異なるコンストラクタのフットプリント
:私は
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
を取得
from abc import ABCMeta, abstractproperty, abstractmethod
class AbstractClass(object):
__metaclass__ = ABCMeta
def __init__(self):
pass
と
import AbstractClass
class DerivedClass(AbstractClass):
_prop = ''
def __init__(self, param):
self._prop = param
を私は
if (cl_param == '1'):
obj = DerivedClass1('1', 'c')
else if (cl_param == '2'):
obj = DerivedClass2('2', 'foo', 2)
ような何かをしたいと思います3210
など。残りのインターフェイスは各クラスで似ていますが、異なる初期化パラメータが必要です。あるいは、リストにパラメータを渡してこれを回避する必要がありますか?
「DerivedClass」コンストラクタを呼び出す際に、そのエラーをどのようにして呼び出すのですか? –
最後のコードスニペット(私はこれまでに派生クラスを1つしか持っていないので、まだif-else構造を持っていません)とほとんど同じです。私は自己+ 3つのパラメータを持っています。私はそれをobj = DerivedClass( '1'、 '2'、 '3')のように呼んでいます。 – Makis
インスタンス以外の単一のパラメータしか取らないように定義しているのが分かりますよね? –