该程序可能会起作用,但我认为这不是最佳的编程风格,正如一些评论所建议的那样。顺便说一句,我没有看到putNewValuesInDatabase
的定义,所以我不知道您是否只是为了简洁而忽略了它,或者它是否会存在于导入该文件的文件中。不管。不要混淆这个问题,但这就是我可能会对此进行编码的方式(尽管由于简洁,我可能会将getInitialValues
滚动到__init__
方法中)
class Functions():
def __init__(self,getData,makeInitialCalculations,makeUpdateCalculations,putNewValuesInDatabase,projectID):
self.getData = getData
self.makeInitialCalculations = makeInitialCalculations
self.makeUpdateCalculations = makeUpdateCalculations
self.putNewValuesInDatabase = putNewValuesInDatabase
self.projectID = projectID
self.getInitialValues()
self.start_updates()
def getInitialValues(self):
time = datetime.now()
timeseries_1,timeseries_2 = self.getData(self.projectID,time)
self.value_1,self.value_2 = self.makeInitialCalculations(timeseries_1,timeseries_2,time)
def updateValues(self):
time = datetime.now()
timeseries_1,self.value_2 = self.makeUpdateCalculations(self.value_1,self.value_2,timeseries_1,timeseries_2)
def start_updates(self):
while True:
sleep(60)
self.updateValues()
self.putNewValuesInDatabase(self)
我已经将getInitialValues
和updateValues
包含在您的类({不太知名的)类Functions
中,并简化了界面。请注意,现在必须为此类的构造函数传递函数getData
,makeInitialCalculations
,makeUpdatecalculations
和putNewValuesInDatabase
,这些函数可能来自可能的客户端代码。 位于要导入该文件的其他文件中。然后,我希望客户端代码为:
obj_instance = Functions(getData,projectID)
您可能希望不要让构造函数自动调用start_updates
(或为此getInitialValues
),而让客户端代码手动调用这些方法。
本文链接:https://www.f2er.com/3137892.html