Mak*_*kis 3 python inheritance constructor abstract-class
如何在Python的派生类中使用不同的构造函数?
如果我尝试这样的事情:
from abc import ABCMeta, abstractproperty, abstractmethod
class AbstractClass(object):
__metaclass__ = ABCMeta
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud)
和
import AbstractClass
class DerivedClass(AbstractClass):
_prop = ''
def __init__(self, param):
self._prop = param
Run Code Online (Sandbox Code Playgroud)
我明白了
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)
我想做点什么
if (cl_param == '1'):
obj = DerivedClass1('1', 'c')
else if (cl_param == '2'):
obj = DerivedClass2('2', 'foo', 2)
Run Code Online (Sandbox Code Playgroud)
等等.接口的其余部分在每个类中都是相似的,它们只需要不同的初始化参数.或者我是否必须通过在列表中提供参数来规避这一点?
确保从类而不是模块继承.
使用django模型时,我收到了相同的错误消息
错误在于从models.Model继承我的模型
我有类似的东西
class Entry(models):
content = models.TextField()
pub_date = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
什么时候应该
class Entry(models.Model):
content = models.TextField()
pub_date = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
注意缺少的models.Model