Чтобы запустить функцию, вы должны использовать ()
после нее.
Чтобы получить значение выражения в строке, вам нужно использовать eval()
, а не exec()
.См. В чем разница между eval, exec и compile? .
Поскольку у вашей лямбда-функции есть параметр, вам нужно дать ей аргумент при ее вызове.
chain = "What has to be broken up"
reduction = 'lambda c: c[0:8]'
x = eval(reduction)(chain)
print(x)
Если вы не хотите давать ему аргумент, вы должны убрать параметр.Но вам все равно нужно предоставить пустой список аргументов.
chain = "What has to be broken up"
reduction = 'lambda: chain[0:8]'
x = eval(reduction)()
print(x)