Найти - Пользователи
Полная версия: Работа функций без параметра
Начало » Python для новичков » Работа функций без параметра
1
Imarden
Добрый день!
Хотелсь бы уточнить как и почему работает такой код:

def names():
    title = 'Заголовок '
    action = (lambda x: title + x)
    return action
act = names()
print(act('Аргумент'))

Вывод:
Заголовок Аргумент

В коде у функции names отсутсвует параметр. Почему же аргумент переданный переменной act определяется как x?

И еще вопрос, получается, что можно переменной присвоить функции, это почти тоже самое что дать функции второе имя?
act = names()

Заранее спасибо.
FishHook
Что возвращает функция names? Функцию action.
Что возвращает функция action?
Imarden
Примерно понятно. Спасибо
py.user.next
Imarden
можно переменной присвоить функции, это почти тоже самое что дать функции второе имя?
Это и есть то же самое. В питоне не переменные, а имена, привязанные к объектам. Имя можно привязать к одному объекту, а потом его же привязать к другому объекту. Число - объект, строка - объект, список - объект, функция - объект.

Например lambda-функция - это объект, к которому не привязано никакое имя.
>>> lambda x: x
<function <lambda> at 0xb75623d4>
>>>
Но к этому объекту можно привязать имя.
>>> f = lambda x: x
>>> f
<function <lambda> at 0xb74bf53c>
>>>

Одно имя можно привязать только к одному объекту, но к одному объекту можно привязать много имён.
Imarden
Понял. Спасибо большое!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB