01.07 笔记 - 模块

1.什么是模块

  • 在python中一个py文件就是一个模块,模块也有封装效果

a.系统模块(标准库) - python系统提供的模块(安装解析器的时候已经导入到解释器中了,使用的时候在代码中直接导入)

random模块 - 提供随机数

math模块 - 提供数学运算

json库 - 提供json数据相关操作

re模块 - 提供正则表达式相关操作

socket模块 - 提供python套接字编程(网络通信)

time模块 - 提供和时间相关的操作

threading模块 - 提供和线程相关的操作

...

b.自定义模块 - 程序员自己写的模块(py文件)

自己写的模块

别人写的模块 - 第三方库(要自行下载)

标准库和第三方库一般是通过模块提供变量、函数、类

2. 怎么使用模块

  • import 模块名 -> 在程序中直接导入指定的模块,导入后可以使用模块中所有的全局变量(包含了变量、函数和类)

导入后通过"模块名.变量"来使用模块中的内容,可以避免和自己的内容产生歧义

  • from 模块名 import 变量1, 变量2, -> 在程序中导入指定的模块,导入后只能使用import 后面的变量

导入后直接使用变量,不用在前面加'模块名.'。

  • from 模块名 import * -> 使用*号导入所有的全局变量

重点 - 导入模块的本质,实质会进入模块里执行一遍所有的代码,当import或from import 模块时,会执行模块中的代码,在哪个地方写的import就在哪里执行

  • 若一个模块导入多次,只会导入一次,不会重复导入,不会重复执行代码,会检查是否已经导入(import与from import)

4. 怎么阻止模块中的内容被其他模块执行

  • 在module中,写入if __name__ == '__main__'里面的代码不会被import执行

  • 一般函数声明会放在if的外面,其他放在if里面

  • 不希望被其他模块执行的代码放在if语句中,如果希望被其他模块使用的代码就放在if语句的外面

原理:

每一个模块都有一个__name__属性,所有的py文件都有这个属性,代表当前模块的模块名,默认情况下它的值是py文件名。

当当前模块正在被执行的时候(直接执行的时候)的时候,模块实现__name__会变成‘__main__'

5. 导入模块的时候,可以对导入的模块或模块中的内容重命名

对模块重命名 import 模块名 as 新模块名

对模块中的内容命名 from 模块名 import 内容名 as 新内容名

*通配符不能重新命名

你可能感兴趣的:(01.07 笔记 - 模块)