MST

星途 面试题库

面试题:Python包结构下的相对导入原理与应用

假设你有一个复杂的Python项目,包结构如下:`project/ ├── package1 │ ├── __init__.py │ ├── module1.py │ └── subpackage1 │ ├── __init__.py │ └── module2.py └── package2 ├── __init__.py └── module3.py` 在`module1.py`中,如何使用相对导入来导入`module2.py`中的函数?如果在`module3.py`中想要导入`package1.module1`中的类,应该如何编写导入语句?并解释相对导入中`. `和`..`的具体含义及使用场景。
38.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. module1.py中导入module2.py中的函数:
    from. subpackage1.module2 import <function_name>
    
  2. module3.py中导入package1.module1中的类:
    from..package1.module1 import <class_name>
    
  3. ...的含义及使用场景:
    • .表示当前包。当使用相对导入时,使用一个.表示从当前包内的模块或子包进行导入。例如在module1.py中,要导入同属package1subpackage1.module2,就可以用.subpackage1.module2,这里的.就代表package1包。
    • ..表示父包。当要从当前包的父包进行导入时使用。例如在package2中的module3.py,要导入package1.module1package1package2的兄弟包,它们有共同的父包project,所以可以用..package1.module1,这里的..代表project这个父包。