模块是什么
简单说就是.py文件,里面可以定义函数、类、变量等,可以将不同功能的函数放在不同的文件中,在用的时候导入即可,可以更方便的对代码进行管理。
怎么导入模块
import
表示导入。格式是:import 模块名。调用模块内部的函数只需要在模块名后面加.函数名即可。
注意:模块名可以为*号,表示导入该模块内的全部内容
准备:
提前在同级目录下新建了一个叫自定义函数的.py文件。内容如下
def name():
print('我是name函数')
例子:
import 自定义函数 #导入自定义函数模块
自定义函数.name()
# 输出结果hello world
from … import …
表示从哪个模块中导入某个部分。格式是:from 模块名 import 需要调用的函数名。好处是使用起来更加方便。但是容易与当前执行文件中的名字起冲突。后面的会将前面的进行覆盖操作。
准备:
提前在同级目录下新建一个自定义函数的.py文件。定义两个不同的函数,内容如下:
def function():
print('我是function函数')
def name():
print('我是name函数')
例子:
from 自定义函数 import name #导入自定义函数中的name函数
name()#输出结果:我是name函数
function()
#报错内容:name 'function' is not defined
#表示function()函数未定义
可以发现,function函数并没有导入进来,只导入了name函数。
as
可以为导入的模块起一个别名。方便使用。
格式:
import 模块名 as 别名
from 模块名 import 函数名 as 别名
注意:
在起了别名后,在后续使用中都是使用别名表示的,如果再使用别名代码的函数名时,则会报错
例子:
from 自定义函数 import name as a
name() #起别名前
a() #使用别名表示name
import与from … import … 一样,将模块名取别名,后续对模块使用时使用别名进行即可。
注意事项:
- 如果多次导入相同的模块名时,系统只会执行已经在内存加载好的结果。简单说系统只会运行第一次导入的代码,剩下的导入则会忽略
- 被导入的模块都是有独立的名称空间的,每一个模块都是一个独立的名称空间,定义在这个模块里的函数,把这个模块的名称空间当作全局名称空间。避免自己定义的全局变量在被导入时,与使用者的全局变量冲突。但是如果使用from … import … 导入相同函数名时,则会发生覆盖。
- 在自定义模块时,模块名称建议不要中文的,容易出现问题。上面的我只是为了方便。也不可以是数字开头的。只能是字母、数字、下划线组成。
模块的搜索路径
内存中已经加载好的模块 --> 内置模块 --> sys.path路径中包含的模块。