Присвоение функции переменной с таким же именем (как и функция)
Увидел решение задачи в данном варианте.
def mycount():
# Счётчик повторений
enter = 0
def number():
nonlocal enter
enter += 1
print("Вход номер: " + str(enter))
return number
mycount = mycount()
mycount()
mycount()
mycount()
Но не могу разобраться, почему функции присваивают значения переменным. У этих переменных и функций используется одинаковые имена.
Как это работает?
Ответы (1 шт):
Автор решения: Kers
→ Ссылка
Возможно это просто обучающий пример того что функция может быть присвоена переменной а с именем на стали что-то придумывать. Да и ошибки в коде есть. Немного переписал Ваш пример для демонстрации.
def mycount():
print("HELLO")
return "WORLD!!!"
def mc2():
print("world")
# присвоение функции без ()
# со () вы присваиваете возвращаемое значение из функции.
mycount = mycount
mycount() # HELLO
mycount = mycount() # тоже выведет в консоль HELLO так как функция отработала.
print(mycount) # WORLD!!! так как это возвращаемое значение
mycount =mc2 # переопределение переменной
mycount() # world
Имхо весьма плохая практика вносящая путаницу.