相关疑难解决方法(0)

Pandas DataFrame对象继承还是对象使用?

我正在构建一个用于处理非常具体的结构化数据的库,我正在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:

  1. 可以直接在CTMatrix类(如CTmatrix.sort())上使用DataFrame方法,而不必通过_dataOption#2中封装对象上的方法支持它们
  2. 除了可能用本地类方法覆盖的方法之外,Pandas中的更新和新方法是继承的

  1. 使用某些方法的并发症,例如__init__()必须将属性传递给超类super(MyDF, self).__init__(*args, **kw)

选项2:

  1. 更多地控制Class及其行为
  2. Pandas的更新可能更具弹性?

  1. 必须使用getter()或非隐藏属性来使用对象,如数据框,如(CTMatrix.data.sort())

在选项#1中采用这种方法是否还有其他缺点?

python oop inheritance pandas

8
推荐指数
1
解决办法
2448
查看次数

标签 统计

inheritance ×1

oop ×1

pandas ×1

python ×1