我可以使用“eval”在 Python 中定义函数吗? [复制]

2024-03-27

我想使用 eval 定义一个 Python 函数:

func_obj = eval('def foo(a, b):  return a + b')

但它返回无效语法错误? 我怎样才能做到呢?

顺便说一句,如何在 Python 中将函数 obj 转换为字符串对象?


Use exec. eval用于表达式而不是语句。

>>> exec 'def foo(a, b):  return a + b'
>>> foo(1, 2)
3

函数对象的函数代码:

def func():
    """ I'm func """
    return "Hello, World"
... 
>>> import inspect
>>> print inspect.getsource(func)
def func():
    """ I'm func """
    return "Hello, World"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用“eval”在 Python 中定义函数吗? [复制] 的相关文章

随机推荐