Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2015 18:59:13

Imarden
Зарегистрирован: 2015-02-20
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа функций без параметра

Добрый день!
Хотелсь бы уточнить как и почему работает такой код:

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

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

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

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

Заранее спасибо.

Офлайн

#2 Март 19, 2015 19:10:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Работа функций без параметра

Что возвращает функция names? Функцию action.
Что возвращает функция action?



Офлайн

#3 Март 19, 2015 19:22:22

Imarden
Зарегистрирован: 2015-02-20
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа функций без параметра

Примерно понятно. Спасибо

Офлайн

#4 Март 20, 2015 00:48:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа функций без параметра

Imarden
можно переменной присвоить функции, это почти тоже самое что дать функции второе имя?
Это и есть то же самое. В питоне не переменные, а имена, привязанные к объектам. Имя можно привязать к одному объекту, а потом его же привязать к другому объекту. Число - объект, строка - объект, список - объект, функция - объект.

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

Одно имя можно привязать только к одному объекту, но к одному объекту можно привязать много имён.



Отредактировано py.user.next (Март 20, 2015 00:53:09)

Офлайн

#5 Март 20, 2015 05:19:55

Imarden
Зарегистрирован: 2015-02-20
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа функций без параметра

Понял. Спасибо большое!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version