【发布时间】:2020-11-08 14:38:37
【问题描述】:
我是 python 初学者,目前正在学习 OOP。我想创建一个类,该类将从数据库中加载数据,然后对这些数据执行转换和计算。但是,我不确定应该如何设计课程。该类将有几个方法,每个方法输入都是前一个方法的输出。但是,我发现这种方式并不优雅,我觉得它不符合 OOP 的精神。
这是使用 OOP 设计此类流程的好方法吗?或者在这种情况下创建一个类来处理数据是否更有利?
请看下面我尝试做的事情:
class Data:
def __init__(self, arg):
self.arg = arg (attributes necessary for the loading of data)
def load_data(self):
"load the data from somewhere and reshape it so that it can be used by method1"
return(data)
def method1(self, data):
"do some transformation on the data"
return(data1)
def method2(self, data1):
"do some transformation on the data1"
return(data2)
def method3(self, data2):
"do some transformation on the data2"
return(data3)
def run(self):
data = self.load()
data1 = self.method1(data)
data2 = self.method2(data1)
data3 = self.method3(data2)
return(data3)
提前感谢您的帮助。
【问题讨论】:
-
这取决于你的目标。不同的编程哲学可能会建议您的代码应该以某种方式编写。您的代码完全可以接受 UNIX 哲学(一个函数只做一件事并且做得很好,并期望一个代码的输出成为另一个代码的输入)。我认为这归根结底是个人喜好。 en.wikipedia.org/wiki/Unix_philosophy
标签: python dataframe class design-patterns methods