gpt4 book ai didi

python - 获取python包的所有函数

转载 作者:行者123 更新时间:2023-11-28 18:32:49 28 4
gpt4 key购买 nike

我有一个多模块 Python 包,其中有一个类为 MyClass 的文件和几个具有函数的文件(一个文件可以包含多个函数)。

我试图获取这个包中的所有函数。

首先,使用以下内容:

modules = []
for importer, module, ispkg in pkgutil.iter_modules(package.__path__):
modules.extend(module)

但我只有模块名称,没有模块对象。

当我尝试使用 inspect.getmembers(module, inspect.isfunction) 获取这些模块的函数时,我当然得到了一个空集合。

那么,如何从包中获取所有模块对象以进一步获取功能?

是否存在从多文件包中获取所有函数的更简单方法?

附言我需要的正是 function 对象,而不仅仅是它们的名称。

编辑。

  1. dir(package) 只给我内置变量:

    ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']

  2. inspect.getmembers(package, inspect.infunction) 给出一个空的列表以及我上面描述的每个 module 的相同代码。

  3. dir(module) 给我所有可用方法的名称列表str 对象(因为 iter_modules() 只给出了 names模块)。

  4. AST...您确定没有更简单的解决方案吗?

最佳答案

试试这个:

for importer, module, ispkg in pkgutil.iter_modules(package.__path__):
print dir(__import__(module))

关于python - 获取python包的所有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274149/

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