jacky0752
回答者
回答于 2025-04-06
在 Python 中将输入的函数作为字符串类型的两种方法
方法 1:通过 input() 直接获取字符串输入
python
输入示例:输入一个函数表达式(例如 "lambda x: x**2")
user_input = input("请输入函数表达式: ") # 返回值直接是字符串类型 print(type(user_input)) # 输出 <class 'str'>
方法 2:将现有函数对象转为字符串
python def my_function(a, b): return a + b
通过 name 获取函数名
function_name = my_function.name print(function_name) # 输出 "my_function"
通过 inspect 模块获取完整函数体(需安装标准库)
import inspect source_code = inspect.getsource(my_function) print(source_code) # 输出函数定义的完整代码
注意事项
- 若要将字符串转换为可执行函数,可以使用
eval(),但要注意安全风险 - 获取函数源码需要确保代码在可访问的上下文中
- 对匿名函数(lambda)使用
inspect时,需要确保其有明确的来源