一、什么是模块
模块,简单而言,就是别人写好的py文件,我们只需要引入这个模块,就可以使用。
二、模块的引入
同其他语言一样,我们使用import关键字来引入模块。语法格式为: import 模块名
需要引入多个模块时,也可以这样写:import 模块名1,模块名2..
注意:import 语句必须出现在文件最开始的地方
三、引入模块时做了哪些事情?
1、执行模块.py文件
2、引入函数名、变量名
(一般情况下,在模块中一般只定义函数而不执行函数,当然也会可以定义变量)
四、调用模块中的属性和方法
语法格式为:模块名.函数名
为什么要采用这种方式呢?假设这样一种情况,我们同时引入两个不同的模块A,B(包的名字不同),但是他们有一个相同名字的方法F,我们需要调用的是A中的方法F而不是B中的方法F,如果只是采用F函数名的方式调用的话,则会出现歧义。因此,使用模块名.函数名的方式,能进行区分。
有时侯,我们只需要模块中的某个函数,只需要引入该函数即可,我们可以采用以下语句:from 模块名 import 函数名1,函数名2..
使用 from 模块名 import *可以引入该模块中所有的方法,但是不推荐。
五、__name__变量
1.如果模块是被导入,__name__的值是模块名
2.如果模块是被直接执行,__name__的值是"__main__"
#这个是test.py里面的代码 def playLOL(): print("铁骨铮铮王靖泽"); print(__name__); if __name__=="__main__": playLOL()
#这个是执行文件里的代码 import test; def listenMusic(): print("这歌真好听"); print(__name__) if __name__=="__main__": test.playLOL(); listenMusic();
执行结果为:
test
__main__
铁骨铮铮王靖泽
这歌真好听
通过这个特性可以在if语句里面添加测试代码,可以减少bug,提高程序的健壮性。
六、动态导入模块
为什么要使用动态导入模块?
1.import不能接受变量。
2.import只能导入已经安装的模块,如果导入的模块未安装则报错
动态导入模块的方式:
1.动态导入一个模块可以使用__import__()函数。
__import__()函数需要接收一个字符串参数。
os=__import__("os");
re=__import__("re")
2.动态导入一个模块列表
moduleNames=["sys","requests","re","os"] modules=map(__import__(),moduleNames)