Python 从模块导入特定类型的所有元素

Python 从模块导入特定类型的所有元素,python,types,import,python-import,python-importlib,Python,Types,Import,Python Import,Python Importlib,我想在模块中导入仅属于特定类型的对象 例如,要导入的模块是: #foo.py a=a()#类型(a)=a b=b()#类型(b)=b 现在我想从foo导入A类型的元素(即A) 显然,您可以导入所有foo,然后遍历它以检查类型。不过,我认为这并不理想 也许importlib中有什么东西可以促进这一点 编辑 (添加有关用例的更多信息。) 基本上,我正在尝试创建类似的东西,并希望为自定义魔法创建一个工具 用户将向decorator注册文件中的函数,decorator将返回特定类型的实例 然后,用户将

我想在模块中导入仅属于特定类型的对象

例如,要导入的模块是:

#foo.py
a=a()#类型(a)=a
b=b()#类型(b)=b
现在我想从
foo
导入
A
类型的元素(即
A

显然,您可以导入所有
foo
,然后遍历它以检查类型。不过,我认为这并不理想

也许
importlib
中有什么东西可以促进这一点

编辑 (添加有关用例的更多信息。)

基本上,我正在尝试创建类似的东西,并希望为自定义魔法创建一个工具

用户将向decorator注册文件中的函数,decorator将返回特定类型的实例

然后,用户将在实例化时传递模块的路径

#user_file.py
#decorator返回特定类型的对象(例如`foo`)
@登记册
定义a():
...
def b():
...
然后类似的事情发生了:

#导入_file.py
类GetsRegisteredKeys:
定义初始化(自身,路径:列表):
对于路径中的路径:
#导入已注册的元素,即具有'foo'类型的元素。
grk=GetsRegisteredKeys(路径=['./用户_file.py'])
用户实际上不会调用
GetsRegisteredKeys
。他们只是在别的地方的小路上经过


完全避免这种导入的替代设计是受欢迎的。

如果您想这样做,只需将其本身放入一个函数中并这样调用即可 (我想这就是你想要做的,如果不是,请纠正我)

然后在另一个python文件中

import foo
a = foo.A()
b = foo.B()

foo显然是它的实际名称的占位符。

Python中没有类似的内容。有一个很好的理由。您尝试这样做的事实表明,您的设计可能有问题(尽管由于信息有限,我无法对此进行更多说明),我知道在某些情况下这可能会起作用。不幸的是,它在我的车里不起作用。我在问题的编辑版本中添加了更多信息。
import foo
a = foo.A()
b = foo.B()