gpt4 book ai didi

python - 导入目录中的所有类?

转载 作者:太空狗 更新时间:2023-10-29 21:04:10 25 4
gpt4 key购买 nike

我找到了 this ,但这并不是我想要做的。

我想导入目录中所有文件中的所有类。基本上,我想替换这个:

from A import *
from B import *
from C import *

有了一些动态的东西,这样我就不必在每次添加另一个文件时都继续编辑我的 __init__.py


glob 解决方案似乎等同于

import A
import B
import C

这完全不一样。

最佳答案

您可以这样做,但请记住 isinstance(cls, type) 仅适用于新式类。

import os, sys

path = os.path.dirname(os.path.abspath(__file__))

for py in [f[:-3] for f in os.listdir(path) if f.endswith('.py') and f != '__init__.py']:
mod = __import__('.'.join([__name__, py]), fromlist=[py])
classes = [getattr(mod, x) for x in dir(mod) if isinstance(getattr(mod, x), type)]
for cls in classes:
setattr(sys.modules[__name__], cls.__name__, cls)

关于python - 导入目录中的所有类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246458/

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