我正在编写一个检测python文件并读取其类和函数以便随后调用的程序。如何在不导入的情况下从另一个python文件列出功能?以及如何称呼他们?
程序的结构:
Modules.py列出/ Modules中的所有python文件,并将它们存储在列表中。 Index.py调用Modules.py中的函数(只是为了使事情少一点混乱)
ChickenModule.py具有一个名为ChickenStuff的类,该类在每次被self.(something)
调用时都会显示“我是一只鸡”。
该程序的目标是使用户能够在模块中放置.py文件,并且在运行index.py时,将列出该.py文件的功能和类。
答案 0 :(得分:0)
您可能需要一个名为importlib
的内置库。我假设您要列出课程。为此,您需要inspect
。
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)