Когда вы делаете это:
>>> l = lambda: -4, 'c', 0
l
на самом деле является кортежем, содержащим первый элемент в виде лямбда-функции, второй элемент в виде строки и третий элемент в целом числе.
Это эквивалентно следующему:
>>> l = (lambda: -4, 'c', 0)
Если вы хотите получить доступ к лямбда-функции, которая возвращает -4
, попробуйте следующее:
>>> i = iter(l)
>>> next(i)()
-4
Но учтите, что next(i)()
работает только с callable
(лямбда, функциями и т. Д.) Объектами. Если вы используете next(i)()
со строковым объектом, Python поднимет TypeError: 'str' object is not callable
. Поэтому всегда проверяйте, является ли предмет callable
. т.е.
i = iter(l)
item = next(i)
if callable(item):
print(item())
else:
print(item)