gpt4 book ai didi

python - 在Python中,如何找到(1)调用特定函数并且(2)具有特定装饰器的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:16 25 4
gpt4 key购买 nike

例如,如果您有一个文件 code.py:

def functionA():
# does something

@some_decorator
def functionB():
functionA()

@some_decorator
def functionC():
functionD()

def functionD():
functionA()

如何编写函数 find_callers_with_decorator,以便当您调用 find_callers_with_decorator(code.py, 'some_decorator') 时,它返回 ['functionB', 'functionC']

最佳答案

您可以使用ast模块:

import ast

def find_callers_with_decorator(filename, decorator):
with open(filename, 'rb') as handle:
module = ast.parse(handle.read())

for node in module.body:
if not isinstance(node, ast.FunctionDef):
continue

if decorator in (d.id for d in node.decorator_list):
yield node.name

关于python - 在Python中,如何找到(1)调用特定函数并且(2)具有特定装饰器的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30905777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com