2024-04-24 05:52:47 发布
网友
我想读一个lambda函数,它是我创建后作为字符串创建的。
例如
func = lambda num1,num2: num1 + num2
我想把func读成:
'lambda num1,num2: num1 + num2'
有什么方法可以完成这一点,甚至可以读取lambda函数的任何部分吗?
您可以使用^{}模块中的getsourcelines来执行此操作
getsourcelines
此函数以列表形式返回任何函数、模块、类或方法定义的所有行以及定义它的行号。
例如:
import inspect f = lambda x, y : x + y print inspect.getsourcelines(f)[0][0]
将函数的定义输出为:
f = lambda x, y: x + y
编辑:由于我误解了问题,更改了我的第一个答案。这个答案是借用了许多其他用途,但是我已经完成了代码,只显示您想要的字符串部分。
import inspect func = lambda num1,num2: num1 + num2 funcString = str(inspect.getsourcelines(func)[0]) funcString = funcString.strip("['\\n']").split(" = ")[1] print funcString
输出以下字符串:
lambda num1,num2: num1 + num2
您可以使用Python的eval()函数:
eval()
>>> func = eval('lambda num1,num2: num1 + num2') >>> func <function <lambda> at 0x7fe87b74b668>
计算任何表达式并返回值。
您可以使用^{} 模块中的
getsourcelines
来执行此操作此函数以列表形式返回任何函数、模块、类或方法定义的所有行以及定义它的行号。
例如:
将函数的定义输出为:
编辑:由于我误解了问题,更改了我的第一个答案。这个答案是借用了许多其他用途,但是我已经完成了代码,只显示您想要的字符串部分。
输出以下字符串:
您可以使用Python的
eval()
函数:计算任何表达式并返回值。
相关问题 更多 >
编程相关推荐