MST

星途 面试题库

面试题:Python类导入别名与命名空间

有两个模块`module_a.py`和`module_b.py`,它们都定义了一个同名类`DataProcessor`。在`main.py`中,需要同时导入这两个模块中的`DataProcessor`类,分别使用别名`ADataProcessor`和`BDataProcessor`。请阐述这种情况下Python如何处理命名空间,避免命名冲突,并写出完整的导入和使用代码。
37.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

在Python中,通过使用不同的别名来导入同名类,可以避免命名冲突。Python会为每个导入的模块维护独立的命名空间,通过别名访问类时,实际上是从对应的模块命名空间中获取该类。

以下是main.py中完整的导入和使用代码:

from module_a import DataProcessor as ADataProcessor
from module_b import DataProcessor as BDataProcessor

# 使用ADataProcessor
a_processor = ADataProcessor()
a_processor.some_method()  # 假设类中有此方法

# 使用BDataProcessor
b_processor = BDataProcessor()
b_processor.some_method()  # 假设类中有此方法