模块导入、命名空间

时间:2021-05-01 22:25:37

1、任何以.py结尾的文件都是模块。每个导入的模块都有自己的命名空间,所以调用函数时,需要指定函数所在的的命名空间,否则会报错。

 def hi():
    print('hello world!')
###################

import A21
>>> hi()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hi()
NameError: name 'hi' is not defined
>>> A21.hi()
hello world!

2、模块导入的方式与区别。

  第一种:import  模块名。用着种方式导入模块时,每次调用导入的模块中的函数时,必须采用  模块名.函数名()的形式,而有时候模块名会比较长,所以这种方法会比较麻烦。

  第二种:from 模块名 import 函数名(*表示导入所有函数)。从模块中导入指定的函数(名),这种方式导入了指定函数的命名空间,调用时不用加模块名。注意:如果在不同模块中都相同名字的函数,而且同时用这种方法导入,就会因为名字混乱发生冲突。

  第三种:import 模块名 as 新名字。用简单的名字替代原来较长的名字,从而达到简化的效果。

 def hi():
    print('hello world!')
###################

import A21
>>> hi()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hi()
NameError: name 'hi' is not defined
>>> import A21 as A
>>>A.hi()
hello world!