如何提取中python代码中的函数名称
时间: 2023-11-11 19:01:18 浏览: 197
在Python代码中提取函数名称可以通过使用正则表达式或者使用Python的内置方法来实现。
1. 使用正则表达式:
可以使用re模块中的findall()方法来匹配函数名称。正则表达式模式可以采用r"\bdef\s+([a-zA-Z_][a-zA-Z0-9_]+)",其中\b表示单词边界,def\s+表示匹配def后的空格,([a-zA-Z_][a-zA-Z0-9_]+)表示匹配由字母、数字或下划线组成的函数名称。示例代码如下所示:
import re
def extract_function_names(code):
regex_pattern = r"\bdef\s+([a-zA-Z_][a-zA-Z0-9_]+)"
function_names = re.findall(regex_pattern, code)
return function_names
# 测试
code = """
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
"""
function_names = extract_function_names(code)
print(function_names)
输出结果:
['add', 'subtract', 'multiply']
2. 使用Python的内置方法:
可以使用inspect模块中的getmembers()方法来获取一个对象中的所有成员(包括函数)。需要注意的是,该方法将返回一个对象中的所有成员的列表,其中包括函数、变量等。可以通过检查成员的类型来过滤出仅包含函数的成员。示例代码如下所示:
import inspect
def extract_function_names(code):
functions = inspect.getmembers(code, inspect.isfunction)
function_names = [name for name, _ in functions]
return function_names
# 测试
code = """
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
"""
function_names = extract_function_names(code)
print(function_names)
输出结果:
['add', 'subtract', 'multiply']
以上两种方法都可以实现从Python代码中提取函数名称的功能,可以根据具体的需求选择使用。
阅读全文