Py学习  »  Python

在Python中将字符串转换为可调用函数

Julio S. • 2 年前 • 688 次点击  

我想从用户输入中获取书面函数(字符串),并将其转换为Python中的可调用函数。 尽管存在安全隐患,如何实现这一目标?

范例( 一串 ):

""" def test():\n print('success')\n返回'success' """

我想通过调用test()调用/计算所述字符串,并将其打印到控制台。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131251
 
688 次点击  
文章 [ 2 ]  |  最新文章 2 年前
maya
Reply   •   1 楼
maya    2 年前

尝试使用compile方法结合eval或exec

a = compile("""def test(): \n print('success') \n return 'success' """, "", "exec")
eval(a)

test()
chepner
Reply   •   2 楼
chepner    2 年前

在适当的情况下,这是一项针对 exec 作用

>>> exec("""def test(): \n print('success') \n return 'success' """, globals())
>>> test()
success
'success'