Передача переменной из одной функции в другую функцию

У меня есть функция, в которой многое происходит, поэтому я решил разделить ее на более мелкие функции и вызвать все мои блочные функции внутри одной функции. -> например

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): подразумевается, что это не то, что здесь происходит, и вы не понимаете, что такое методы или обычные функции.

Другие вопросы по тегам