Ошибка, которую вы показываете, не означает, что проблема связана с переменной областью, скорее она встречается из-за невозможности выполнить вычисления для не похожих типов.
Трудно сказать, не увидев ваш полный код, но, возможно, следующее предложит альтернативное решение:
#!/usr/bin/env python
import datetime
def start():
start_time = datetime.datetime.now()
return start_time
def stop():
stop_time = datetime.datetime.now()
return stop_time
def delta(start,stop):
delta_time = stop - start
print(delta_time)
start=start()
stop=stop()
delta(start,stop)
Это решение перемещает две сгенерированные временные метки (start_time
и stop_time
) в одну функцию (delta
) в качестве аргументов, так что при вычислении delta_time
это делается для переменных подобного типа в пределах области действия функции. .