Python — функция не возвращает

#python #return #function

#python #Возврат #функция

Вопрос:

Я изучаю Python, и у меня возникла проблема. Все дело в определении функций. Возможно, я не понимаю возвращаемую функцию…

 def adding(x, y):
    tuple1 = ()
    ans = x   y
    tuple1 = tuple1   (ans,)
    return tuple1

adding(3, 2)
tuple1
  

Когда я запускаю это в Python, оно выполняет adding(3, 2) , но не показывает мне tuple1 (даже если я его напечатаю …), оно говорит, что tuple1 это не определено, почему это? Я думал, что return вернет вычисляемый объект и сохранит его в памяти.

Ответ №1:

tuple1 это локальное имя в adding() функции. Вам нужно сохранить возвращаемое значение функции под новым именем:

 return_value = adding(3, 2)
  

Теперь вы можете использовать return_value , чтобы увидеть, из какого объекта был возвращен adding() .

Вы можете даже tuple1 вместо return_value там, но это будет только выглядеть так же, как имя, используемое в adding() . Вне функции имена являются частью другой области и не зависят от локальных имен, используемых внутри функций (хотя имена в функциях могут ссылаться на те же вещи, что и модуль, или глобальную область).