我正在构建一个用于处理非常具体的结构化数据的库,我正在Pandas之上构建我的基础架构.目前,我正在为不同的用例编写一堆不同的数据容器,例如CTMatrix for Country x Time Data等,以容纳适用于所有CountryxTime结构化数据的方法.
我目前正在辩论
选项1:对象继承
class CTMatrix(pd.DataFrame):
methods etc. here
Run Code Online (Sandbox Code Playgroud)
或选项2:对象使用
class CTMatrix(object):
_data = pd.DataFrame
then use getter, setter methods to control access to _data etc.
Run Code Online (Sandbox Code Playgroud)
从软件工程的角度来看,这里有一个明显的选择吗?
到目前为止我的想法是:
选项1:
CTmatrix.sort())上使用DataFrame方法,而不必通过_dataOption#2中封装对象上的方法支持它们但
__init__()必须将属性传递给超类super(MyDF, self).__init__(*args, **kw) 选项2:
但
CTMatrix.data.sort())在选项#1中采用这种方法是否还有其他缺点?