我有一个代码,获取一些脏数据作为输入,然后对其进行解析,清理,整理它们,等等,然后返回一个值。
此刻,我将其构造为一个类,其中__init__
方法接收输入并按给定顺序调用其他方法。
此刻我的课看起来像这样:
class myProcedure:
def __init__(self, dirty_data, file_name):
self.variable1, self.variable2 = self.clean_data(dirty_data)
self.variable3 = self.get_data_from_file(file_name)
self.do_something()
def clean_data(self, dirty_data):
#clean the data
return variable1, variable2
def get_data_from_file(self, file_name):
#load some data
return loaded_data
def do_something(self):
#the interesting part goes here
self.result = the_result
使用类而不是稀疏函数可以更轻松地共享数据。在我的真实代码中,我只有几十个变量可以共享。另一种选择是将它们全部放在字典中,或者让每个函数接受10-20个输入。我发现这两种解决方案都麻烦
此刻我必须将其称为:
useless_class_obj = myProcedure(dirty_data, file_name)
interesting_stuff = useless_class_obj.result
我的担心来自这样一个事实,即useless_class_obj
一经运行就不再具有任何用途,而只是一堆无用的垃圾。
我认为将类用作以下内容会更优雅:
interesting_stuff = myProcedure(dirty_data, file_name)
但这需要__init__
返回不同于self的内容。
有更好的方法吗? 我是用一种不好的或难以理解的方式来做这件事吗?
答案 0 :(得分:1)
嗯...您也可以...
interesting_stuff = myProcedure(dirty_data, file_name).result