操作步骤
- 在
module2
中使用import
语句导入module1
。有以下几种常见导入方式:
import module1
module1.func1()
- **导入并指定别名**:
import module1 as m1
m1.func1()
- **从`module1`中直接导入`func1`**:
from module1 import func1
func1()
命名空间工作原理
- 模块命名空间:每个Python模块都有自己独立的命名空间。在
module1
中定义的func1
存在于module1
的命名空间中。当module2
通过import module1
导入module1
时,module1
的命名空间就成为了module2
中可访问的对象,module2
可以通过module1.func1
这种方式访问func1
,这里module1
起到了限定命名空间的作用。
- 全局命名空间:在
module2
的全局作用域内,使用import module1
导入module1
后,module1
被添加到module2
的全局命名空间中。如果使用from module1 import func1
,func1
直接被添加到module2
的全局命名空间,这样在module2
中可以直接使用func1
,而不需要通过module1
来限定。
- 避免命名冲突:如果
module2
自身也定义了一个名为func1
的函数,使用import module1; module1.func1()
不会产生命名冲突,因为它们处于不同的命名空间。但如果使用from module1 import func1
就会覆盖module2
中已有的func1
,导致原有的func1
无法直接访问,所以在使用from...import
时要注意命名冲突问题。