MST

星途 面试题库

面试题:Python中相对导入模块的方法及场景

在Python中,假设有如下目录结构:project/ - package1/ - __init__.py - module1.py - package2/ - __init__.py - module2.py 现在module2.py 想要导入module1.py中的某个函数,如何使用相对导入的方式实现?并说明相对导入在不同Python版本中的兼容性情况。
40.4万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

module2.py中使用相对导入导入module1.py中的函数,假设要导入的函数名为func,在Python 3中可如下实现:

from..package1.module1 import func

相对导入在不同Python版本中的兼容性情况

  • Python 2:相对导入语法有所不同,需要在package1package2__init__.py文件中添加from __future__ import absolute_import,并且module2.py中的相对导入语法为from..package1.module1 import func ,但这种语法在Python 2.5之前不支持。
  • Python 3:从Python 3.3开始,隐式相对导入已被移除,推荐使用显式相对导入,如上述示例代码。Python 3.x系列对显式相对导入有很好的支持。