gpt4 book ai didi

python - 如何在不导入的情况下从python文件中获取函数

转载 作者:行者123 更新时间:2023-12-05 05:09:53 24 4
gpt4 key购买 nike

我正在制作一个程序来检测 python 文件并读取它们的类和函数以便调用。如何在不导入的情况下列出另一个 python 文件中的函数?我该如何称呼他们?

程序结构:

  • Index.py(主py文件)
  • /内容
    • /模块
      • 模块.py
      • ChickenModule.py(我想从中获取功能的模块)

Modules.py 列出/Modules 中的所有 python 文件并将它们存储在列表中。Index.py 调用 Modules.py 中的函数(只是为了让事情不那么困惑)

ChickenModule.py 有一个名为 ChickenStuff 的类,它在调用 self.(something) 时打印“I'm a chicken”。

该程序的目标是让用户能够将 .py 文件放入模块中,并在运行 index.py 时列出所述 .py 文件的函数和类。

最佳答案

有一个名为 importlib 的内置库可能就是您所需要的。我假设您想要列出类(class)。为此,您需要检查

import os
import os.path as path
import importlib
import inspect

# get a list of all files in Content/Modules
filelist = os.listdir("Content/Modules")

# import every file ending in .py
for fname in filelist:
if path.splitext(fname)[1] == 'py':
my_module = importlib.import_module(path.splitext(fname)[0]) # load the module
for _, obj in inspect.getmembers(my_module): # iterate through members
if isinstance(obj, type): # check if members is a class
print(obj)

关于python - 如何在不导入的情况下从python文件中获取函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57120512/

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