我正在做一些数据处理,并构建了多个管道,每个管道都包含多个函数,这些函数在每个步骤中广泛修改字典。由于不同的管道对相同的数据进行操作并具有相似的功能,因此我一直在尝试将其转换为更面向 OOP 的结构。然而,在我开始之前,我已经把自己稍微打结了。
采取以下简化示例:
for f in foos:
y = extract_y_info(f)
z = extract_z_info(f)
*some code that does something with y and z*
def extract_y_info(f):
return *some code that extracts y info from f*
def extract_z_info(f):
return *some code that extracts z info from f*
对我来说,似乎有几种方法可以将其转移到 OOP 结构。第一个与逐个功能的方法非常相似。
class foo():
def __init__(self, x):
self.x = x
def extract_y_info(self):
return *some code that extracts y info from self.x*
def extract_z_info(self):
return *some code that extracts z info from self.x*
for f in foo_instances:
y = b.extract_y_info()
z = b.extract_z_info()
*some code that does something with y and z*
另一个选项是修改类的实例:
class foo():
def __init__(self, x):
self.x = x
def extract_y_info(self):
self.y = *some code that extracts y info from self.x*
def extract_z_info(self):
self.z = *some code that extracts z info from self.x*
for f in foo_instances:
f.extract_y_info()
f.extract_z_info()
*some code that does something with f.y and f.z*
这些选项中的任何一个是否比另一个更好?还有更好的第三种方法吗?
青春有我
相关分类