我正在尝试访问一个类,该类是在我尝试访问它的同一包中定义的,但在不同的文件中。该类已导入到包的 __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)
我认为这是一个常见的操作,所以我很惊讶没有找到执行此操作的捷径。
最佳答案
我自己刚刚找到了答案。有一个变量 __package__
我可以使用它来避免生成包名称:
import importlib
current_package = importlib.import_module(__package__)
# getting the class I want
cls = getattr(current_package, myclass)
关于python - 访问当前包的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442440/