Это плохая практика: присвоение возвращаемой переменной - PullRequest
1 голос
/ 27 января 2020
one = 1 
def add_one(one):
  two = one + 1 
  return two 

two = add_one(one)
print(two)

Я присваиваю возвращаемую переменную с тем же именем

Ответы [ 2 ]

0 голосов
/ 27 января 2020

См. эту ссылку для различных variable name scope в Python.

Область действия переменной в python - это та часть кода, где она видна. На самом деле, чтобы ссылаться на него, вам не нужно использовать префиксы.

В Python есть 4 типа области переменных:

  1. Встроенный
  2. Global
  3. Включение
  4. Local

Ваш пример использует Local namespace в вашей функции add_one.

two переменная будет локальной для вашей функции add_one и будет уничтожена, когда функция вернется (так как ее счетчик ссылок был уменьшен до нуля. Однако вы передали его значение вызывающей стороне, вернув его. У вашего вызывающей стороны есть другая переменная с то же имя two (но в другой области видимости). Таким образом, это будет другая переменная.

0 голосов
/ 27 января 2020

Это неплохая практика. Это потому, что переменная two в пределах add_one() попадает в другую область.

Таким образом, переменная two вне метода не будет зависеть от того, что происходит в add_one().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...