网站模板紫色,爱你视频免费观看,北京旅游外贸网站建设,做网站需要会什么为什么 from . import * 不会导入子模块
在 Python 中#xff0c;from . import * 并不会自动导入子模块。这是因为 import * 的行为是由模块的 __all__ 变量决定的。如果没有定义 __all__#xff0c;它只会导入当前模块中定义的顶层变量和函数#xff0c;而不会递归地导入…为什么 from . import * 不会导入子模块
在 Python 中from . import * 并不会自动导入子模块。这是因为 import * 的行为是由模块的 __all__ 变量决定的。如果没有定义 __all__它只会导入当前模块中定义的顶层变量和函数而不会递归地导入子模块。
解决方法 显式导入子模块 在 __init__.py 文件中显式导入你希望包含的子模块。例如 from . import test
print(初始化mytest)使用 __all__ 如果你仍然希望使用 from . import *你可以在 __init__.py 文件中定义 __all__ 变量明确指定要导入的子模块 __all__ [test]
print(初始化mytest)然后在使用 from . import * 时Python 会根据 __all__ 的定义导入 test 模块。
示例
假设你的文件结构如下 /mnt/d/python_proj ├── my.py └── mytest├── __init__.py└── test.pymytest/test.py def myfun():print(This is myfun in test module)mytest/init.py显式导入子模块 from . import test
print(初始化mytest)或者使用 __all__ __all__ [test]
print(初始化mytest)my.py import mytest
mytest.test.myfun()通过这种方式你可以确保 test 模块被正确导入并且可以在 my.py 中使用 mytest.test.myfun()。