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


chain = "What has to be broken up"

reduction = 'lambda chain: chain[0:8]'

x = exec(reduction)

print(x)      #only prints out 'None'

print(exec(x = reduction))    #causes error

print(exec(reduction)) #prints out 'None'


我希望输出是字符串链的前8个字符“ What have”。如何使这项工作运行该功能?

最佳答案

要运行功能,必须在其后使用()

要获取字符串中表达式的值,需要使用eval(),而不是exec()。请参见What's the difference between eval, exec, and compile?

由于您的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)

09-25 22:04