面试题答案
一键面试实现思路
- 相对导入:在Python中,可以使用相对导入语法从不同层级的包中导入模块。相对导入使用点号(
.
)来表示包的层级关系。 - 优化导入路径:通过在
__init__.py
文件中添加适当的__all__
变量,可以控制包内模块的可见性。当使用from package import *
时,只有在__all__
列表中的模块才会被导入。
具体代码示例
假设包结构如下:
outer_package/
__init__.py
outer_module.py
inner_package/
__init__.py
inner_module.py
- 在
outer_package/outer_module.py
中导入inner_package/inner_module.py
:
# outer_package/outer_module.py
from .inner_package.inner_module import some_function
# 这里假设inner_module.py中有一个函数some_function
def outer_function():
some_function()
- 优化导入路径和管理模块可见性:
- 在
outer_package/__init__.py
中,可以添加__all__
变量来控制从outer_package
导入模块时哪些模块可见:
- 在
# outer_package/__init__.py
__all__ = ['outer_module']
- 在`inner_package/__init__.py`中,可以添加`__all__`变量来控制从`inner_package`导入模块时哪些模块可见:
# inner_package/__init__.py
__all__ = ['inner_module']
这样,当在其他地方使用from outer_package import *
时,只会导入outer_module
,而使用from outer_package.inner_package import *
时,只会导入inner_module
。