面试题答案
一键面试在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. 简化多个类的导入
如果想同时简化Class1
和Class2
的导入,可以在__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()