Передача переменной из одной функции в другую функцию
У меня есть функция, в которой многое происходит, поэтому я решил разделить ее на более мелкие функции и вызвать все мои блочные функции внутри одной функции. -> например
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 ответ
Если вы хотите передать возвращаемое значение одной функции другой, вам нужно либо вложить вызовы функций:
pay_calculation(self, time_subtraction(self))
... или сохраните значение, чтобы вы могли передать его:
hours = time_subtraction(self)
pay_calculation(self, hours)
В качестве примечания: если это методы в классе, вы должны вызывать их как self.time_subtraction()
, self.pay_calculation(hours)
и т. д., не time_subtraction(self)
и т. д. И если они не являются методами в классе, возможно, так и должно быть.
Часто имеет смысл, чтобы функция взяла экземпляр Spam, а метод Spam - отправил self
в качестве первого аргумента, в этом случае все это хорошо. Но тот факт, что вы определили def time_subtraction(self):
подразумевается, что это не то, что здесь происходит, и вы не понимаете, что такое методы или обычные функции.