Big*_*XKu 5 python class function
我正在制作一个程序来检测 python 文件并读取它们的类和函数以供调用。如何列出另一个 python 文件中的函数而不导入它?我该如何称呼他们?
程序结构:
Modules.py 列出 /Modules 中的所有 python 文件并将它们存储在列表中。Index.py 调用 Modules.py 中的函数(只是为了让事情不那么混乱)
ChickenModule.py 有一个名为 ChickenStuff 的类,每当调用它时都会打印“I'm a Chicken” self.(something)。
该程序的目标是让用户能够将 .py 文件放入模块中,并且在运行 index.py 时,将列出所述 .py 文件的函数和类。
有一个名为的内置库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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6687 次 |
| 最近记录: |