Python 使用exec()从字符串运行lambda函数

Python 使用exec()从字符串运行lambda函数,python,lambda,exec,Python,Lambda,Exec,我希望能够从txt文件中引入lambda函数,并使其能够像正常代码段一样运行 链=必须分解的东西 缩减='lambda链:链[0:8]' x=可执行还原 printx仅打印“无” printexecx=减少导致错误 PrintExecution打印出“无” 我希望输出是字符串链的前8个字符,“What has”。运行函数时,如何使其工作?要运行函数,必须在函数运行后使用 要获取字符串中表达式的值,需要使用eval,而不是exec。看 因为lambda函数有一个参数,所以在调用它时需要给它一个参数

我希望能够从txt文件中引入lambda函数,并使其能够像正常代码段一样运行

链=必须分解的东西 缩减='lambda链:链[0:8]' x=可执行还原 printx仅打印“无” printexecx=减少导致错误 PrintExecution打印出“无”
我希望输出是字符串链的前8个字符,“What has”。运行函数时,如何使其工作?

要运行函数,必须在函数运行后使用

要获取字符串中表达式的值,需要使用eval,而不是exec。看

因为lambda函数有一个参数,所以在调用它时需要给它一个参数

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)

要运行函数,必须在函数之后使用

要获取字符串中表达式的值,需要使用eval,而不是exec。看

因为lambda函数有一个参数,所以在调用它时需要给它一个参数

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)

我不确定我是否明白你想做什么,但这里有一个猜测。它使用而不是exec,因为还原中的是一个表达式:

chain = "What has to be broken up"
reduction = 'lambda string: string[0:8]'
x = eval(reduction)(chain)
print(x)  # -> What has

我不确定我是否明白你想做什么,但这里有一个猜测。它使用而不是exec,因为还原中的是一个表达式:

chain = "What has to be broken up"
reduction = 'lambda string: string[0:8]'
x = eval(reduction)(chain)
print(x)  # -> What has