1、模块
1.1 含义
在Python中,一个 .py 文件即被视为一个模块,其中可以定义函数、变量等
模块:一个包含Python代码的.py文件
模块名 = 文件名(不含.py扩展名)
示例:math.py 代表 math模块
1.2 分类
(1)内置模块
内置模块是Python自带的模块,可以直接导入使用。例如:os、copy、math、random、decimal等模块。
Ctrl+鼠标左键,可以查看模块内的功能!
使用:模块名.功能名
# 示例 import random # 导入随机模 # 随机生成5个字节 print(random.randbytes(5)) # 生成一个1-100之间的随机数 print(random.randint(1, 100)) # 包前包后 # 从非空序列中随机选择一个元素 print(random.choice(["剪刀", "石头", "布"]))
(2)第三方模块【第三方库】
第三方模块是别人编写的模块,需要提前安装才能使用。例如:requests(爬虫)、pandas(数据分析)、numpy、matplotlib、scrapy、pyinstaller等。
在cmd或终端中(win+r),使用pip命令:① pip install 模块名
② pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple # -i 指定源下载
# 示例 import requests
(3)自定义模块
自定义模块是开发者自己编写的模块,例如:my_module.py。
在创建自定义模块时,应确保命名遵循标识符规定以及变量的命名规范,并且要避免与内置模块以及第三方模块命名发生冲突,以防止模块功能出现异常或无法使用!
1.3 导入模块
随着程序的不断扩展和完善,一个 .py 文件中可能会包含大量的代码行、函数和变量等。为了便于维护和提高代码的可重用性,我们通常会将代码拆分为多个文件,即多个模块。这样做的好处是,当我们需要在其他模块中使用某个模块的功能时,只需简单地导入该模块即可,从而提高了代码的可维护性和重用性。
注意:① 导入语句一般建议写在文件最开头
② 同一个模块只需要导入一次
(1)import 模块名 [as 别名]:导入模块所有内容
# 示例1 import test # 使用功能:模块名.功能 print(test.name) test.func() test.fund()
# 示例2 import test as t # 使用功能:模块名.功能 print(t.name) t.func() t.fund()
(2)from 模块名 import 功能:从模块中导入指定功能
from 模块名 import *:从模块中导入所有功能
# 示例1 from test import name, func # 使用功能:功能 print(name) func() # fund() # 没有导入fund,不可以调用
# 示例2 from test import * # 从 test 模块中导入所有功能 print(name) func() fund()
注意:在使用from 模块名 import 功能 导入模块内容时,必须特别留意,确保不同模块之间的功能不重名,否则会产生冲突。
# 示例 from test import name name = "xiaobai" # 本模块变量名覆盖导入模块变量名 print(name)
# 解决方式一: # 示例 from test import name as n name = "xiaobai" print(name) print(n)
# 解决方式二: # 示例 name = "xiaobai" import test print(name) print(test.name)
1.4 以主程序的形式执行
import test # 导入模块时,会执行模块中的所有代码
每个模块都内置了一个__name__的变量,用于记录模块的名称。
程序通过检查这个变量,可以确定代码是在哪个模块中执行的。
如果一个模块是当前正在执行的程序,而不是被导入到其他程序中,那么该模块的__name__变量的值就为"__main__";
如果该模块是被导入到其他模块中执行的,那么__name__变量的值为"模块名"
# 示例
name = "test"
def func():
print("这是test模块中的func函数")
def fund():
print("这是test模块中的fund函数")
print("test模块中__name__变量的值:", __name__)
if __name__ == "__main__":
# 测试代码:测试功能是否可用
print(name)
func()
fund()著作权归文章作者所有。 未经作者允许禁止转载!