我正在尝试访问一个类,该类在我尝试访问它的同一个包中定义,但是在另一个文件中。此类已导入包的__init__.py
。
我知道我可以这样做来获取对当前包的引用,并且从该引用中我可以获得在__init__.py
中作为属性导入的类。但是,没有更短的方法吗?
import importlib
current_package = importlib.import_module('.'.join(__name__.split('.')[:-1]))
# getting the class I want
cls = getattr(current_package, myclass)
我认为这是一个共同的行动,所以我很惊讶找不到这样做的捷径。
答案 0 :(得分:0)
我自己就找到了答案。我可以使用变量__package__
来避免生成包名称:
import importlib
current_package = importlib.import_module(__package__)
# getting the class I want
cls = getattr(current_package, myclass)