如何在Python中将输入的函数作为字符串类型?

在Python中,如果你想要获取一个函数的源代码作为字符串,可以使用内置的`inspect`模块。这个模块提供了多种函数来帮助获取关于活动对象的信息,如模块、类、函数等。

2 个回答

jacky0752
# 在 Python 中将输入的函数作为字符串类型的两种方法 ## 方法 1:通过 `input()` 直接获取字符串输入 python # 输入示例:输入一个函数表达式(例如 "lambda x: x**2") user_input = input("请输入函数表达式: ") # 返回值直接是字符串类型 print(type(user_input)) # 输出 ## 方法 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) # 输出函数定义的完整代码 ## 注意事项 1. 若要将字符串转换为可执行函数,可以使用 `eval()`,但要注意安全风险 2. 获取函数源码需要确保代码在可访问的上下文中 3. 对匿名函数(lambda)使用 `inspect` 时,需要确保其有明确的来源
实话实说

要将函数作为字符串类型获取,你可以使用`inspect.getsource()`函数。这个函数接受一个函数对象作为参数,并返回该函数的源代码作为字符串。下面是一个简单的例子:

import inspect

def my_function():
    print('Hello, world!')

# 获取函数的源代码
function_source = inspect.getsource(my_function)

print(function_source)

这段代码会输出`my_function`函数的源代码,包括缩进和换行符。