我需要在 python 中使用相对导入,所以我这样做:
from .MyModule import MyClass
它有效:)
但是有时我不想显式导入 MyClass
,而是导入 MyModule
并通过执行 MyModule.MyClass
访问我的类
所以我很乐意这样做:
import .MyModule
my_instance = MyModule.MyClass()
但是,将点放在 import
之后似乎是无效语法,即使它在 from
之后是有效的
我想保留对 MyClass
的访问作为 MyModule
的一部分,因此我被迫执行 MyModule.MyClass
并在同时我需要进行 MyModule
我怎样才能实现这个目标
最佳答案
相对导入语法需要 from
语句才能工作。如果访问的模块位于同一文件夹中,则点是它需要的唯一参数:
from . import MyModule
my_instance = MyModule.MyClass() # works
参见the syntax definition in pep328对于规则的完整分割,您对导入应该如何工作的直觉在底部被提到为“不可用”。
关于python - 相对导入适用于 from 但导入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57769409/