MST

星途 面试题库

面试题:Python类导入工作流程优化之中等题

在Python中,假设你有一个包含多个类的模块,为了优化类导入的工作流程,如何使用`__init__.py`文件来简化导入路径?请举例说明。
43.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

在Python中,__init__.py文件用于将一个目录标记为Python包,并且可以用来简化类导入路径。

假设我们有如下包结构:

my_package/
    __init__.py
    module1.py
    module2.py

module1.py中有一个类Class1

class Class1:
    def __init__(self):
        pass

module2.py中有一个类Class2

class Class2:
    def __init__(self):
        pass

1. 简化单个类的导入

如果我们想在外部代码中更方便地导入Class1,可以在__init__.py中添加如下代码:

from .module1 import Class1

这样在外部就可以直接通过以下方式导入:

from my_package import Class1

2. 简化多个类的导入

如果想同时简化Class1Class2的导入,可以在__init__.py中这样写:

from .module1 import Class1
from .module2 import Class2

在外部代码中就可以直接:

from my_package import Class1, Class2

3. 导入整个模块并简化访问

如果不想直接导入类,而是导入模块,但想简化模块访问路径。比如在__init__.py中:

from . import module1
from . import module2

外部代码可以这样使用:

from my_package import module1
obj = module1.Class1()