问题很简单.如果一个B类继承了一个A类并想要覆盖一个用作构造函数的’classmethod'(我想你称之为“工厂方法”).问题是B.classmethod会想要重用A.class方法,但是它必须创建一个A类的实例,而它是A类的子类 – 因为,作为一个类方法,它没有自我.然后,它似乎不是设计它的正确方法.
我做的例子很简单,我通过阅读numpy数组等做了更复杂的事情.但我想这里没有信息丢失.
class A:
def __init__(self, a):
self.el1 = a
@classmethod
def from_csv(cls, csv_file):
a = read_csv(csv_file)
return cls(a)
@classmethod
def from_hdf5 ...
class B(A):
def __init__(self, a, b)
A.(self, a)
self.el2 = b
@classmethod
def from_csv(cls, csv_file):
A_ = A.from_csv(csv_file) #instance of A created in B(A)
b = [a_*2 for a_ in A.el]
return cls(A.el, b)
是否有一种pythonic方式来处理?