将变量从一个函数传递给另一个函数

时间:2014-08-11 22:35:24

标签: python python-2.7 scope argument-passing

我有一个函数,其中包含很多内容,因此我决定将其拆分为更小的函数,并在单个函数中调用所有块函数。 - >例如

def main_function(self):
  time_subtraction(self)
  pay_calculation(self,todays_hours)

和 - >

def time_subtraction(self):
    todays_hours = datetime.combine(datetime(1,1,1,0,0,0), single_object2) - datetime.combine(datetime(1,1,1,0,0,0),single_object)
    return todays_hours

所以我在这里尝试完成的工作就是让todays_hours可以使用main_function。我已经阅读了大量的文档和其他资源,但显然我仍然在努力解决这个问题。

修改 - 这不是班级的方法。它只是一个文件,我有很多功能编码,我会在需要的地方导入它。

1 个答案:

答案 0 :(得分:2)

如果要将一个函数的返回值传递给另一个函数,则需要嵌套函数调用:

pay_calculation(self, time_subtraction(self))

...或存储该值以便您可以传递它:

hours = time_subtraction(self)
pay_calculation(self, hours)

作为旁注,如果这些是类中的方法,则应将其称为self.time_subtraction()self.pay_calculation(hours)等,而不是time_subtraction(self)等。如果它们< em>不是类中的方法,也许它们应该是。

通常,函数采用Spam实例,并且Spam的方法发送self作为第一个参数,在这种情况下这一切都很好。但是你定义def time_subtraction(self):的事实意味着这不是正在发生的事情,你对方法与正常功能感到困惑。