Форум сайта python.su
0
a = print >>> >>> a('x')
lambda arg1, *arg2: arg1(arg1, *arg2)
]lambda arg1, arg2: arg2(arg1, arg2)
Офлайн
186
> А вот запись lambda arg1, *arg2: arg1(arg1, *arg2) , хоть убейте - не понятна…
Вот та же запись с обычными функциями. Надеюсь что это тебе поможет
def foo(arg1, *arg2): return arg1(arg1, *arg2)
Отредактировано Rodegast (Апрель 5, 2019 16:44:41)
Офлайн
0
Rodegast
Вот та же запись с обычными функциями. Надеюсь что это тебе поможет
def foo(arg1, *arg2): return arg1(arg1, *arg2) a = print b = [1, 2, 3] foo(a, b) >>> <built-in function print> [1, 2, 3]
Офлайн
857
first-stepДа. Функция при вызове будет принимать два аргумента. Второй аргумент должен будет быть функцией, так как внутри функции этот второй аргументы вызывается как функция.
Такая запись будет корректной?lambda arg1, arg2: arg2(arg1, arg2)
RodegastОн не понимает, что такое аргумент формальный, аргумент фактический, возвращаемое значение, оператор, определение функции, вызов функции, - это полный набор абсолютного нуля. Так что он просто решил начать изучение с уровня, до которого ещё не дорос даже. Он не владеет базовой терминологией. Это как пытаться изучить роман Достоевского, не зная изображений русских букв. Можно хоть сто раз объяснить течение мысли автора в романе, но человек всё время будет спрашивать “а это что такое, это буква А?”.
Надеюсь что это тебе поможет
Отредактировано py.user.next (Апрель 5, 2019 17:14:53)
Офлайн
0
py.user.next
Да. Функция при вызове будет принимать два аргумента. Второй аргумент должен будет быть функцией, так как внутри функции этот второй аргументы вызывается как функция.
Офлайн
27
Функция задается за пределами лямбды и передаётся как аргумент в лямбду, т.е. где-то в коде, вне lambda находится эта функция. Например:
x = lambda arg1, arg2: arg2(arg1, arg2) x(123, какая_то_функция) # Вот здесь передается ФУНКЦИЯ в arg2 # эта самая "какая_то_функция" может быть встроенной, импортируемой, заданной пользователем, #короче, любой функцией, которая по задумке автора кода должна быть здесь
Отредактировано Rafik (Апрель 5, 2019 21:04:35)
Офлайн
0
Все, спасибо всем участникам! Понял, что к чему. Просто не понимал, что в описании lambda функции может быть написано несколько операций, не связанных друг с другом типа:
x = lambda k, m: ((k + m),(print (m)),(k * m))
Отредактировано first-step (Апрель 6, 2019 00:16:41)
Офлайн
857
first-stepТам, где она определена. Например, функция print определена в исходниках питона. То, как работает функция, находится в её определении.
Простите, а что именно должна делать эта вызываемая функция? Где задается ее описание?
first-stepТы когда пишешь, что понял, ты ничего не понял, потому что у тебя знания основ нет. Например, то, что ты написал
Просто не понимал, что в описании lambda функции может быть написано несколько операций, не связанных друг с другом типа:
first-stepне является несколькими операциями. Это просто один кортеж возвращается. То, что ты этого не понимаешь, происходит из-за того, что ты не знаешь, что такое кортеж. Да, и запятая ещё может быть операцией в каких-то языках, а может и не быть операцией. Но я думаю, что ты и операцию запятая не понимаешь, потому что банально не знаешь про её существование.x = lambda k, m: ((k + m),(print (m)),(k * m))
Отредактировано py.user.next (Апрель 6, 2019 02:21:05)
Офлайн
0
Уважаемый py.user.next, я прохожу курс обучения с нулевого уровня. Обычные функции и кортежи прошли. Вы не думайте, что я совсем уж тупой и прямо начал с изучения лямбда функций сначала. Просто на курсах не было уделено много внимания lambda функциям и они упоминались, но довольно поверхностно их синтаксис вообще не рассматривался, поэтому я столкнулся с незнакомыми штучками.
py.user.next
не является несколькими операциями. Это просто один кортеж возвращается. То, что ты этого не понимаешь, происходит из-за того, что ты не знаешь, что такое кортеж. Да, и запятая ещё может быть операцией в каких-то языках, а может и не быть операцией. Но я думаю, что ты и операцию запятая не понимаешь, потому что банально не знаешь про её существование.
py.user.next
… я тебя отправляю учиться азам….
py.user.next
…Начинать надо, как обычные школьники делают, со всяких простейших вещей, не считая себя при этом самым умным…
Офлайн
0
Вот где прочитать, что лямбда функция умеет, а что не умеет? )
Офлайн