python基础篇(9):模块

1 模块简介

Python 模块(Module),是一个 Python 文件,以 .py 结尾. 模块能定义函数,类和变量,模块里也能包含可执行的代码.

模块的作用: python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包, 每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能.

简而言之,模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

2 模块导入方式

模块在使用前需要先导入 导入的语法如下:

复制代码
[from 模块名] import [模块|类|变量|函数|*][as 别名]

常用的组合形式如:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

2.1 import 模块名

复制代码
import 模块名
import 模块名1,模块名2

模块名.功能名()

案例:导入time模块

复制代码
# 导入时间模块
import time

print("开始")
# 让程序睡眠1秒(阻塞)
time.sleep(1)
print("结束")

2.2 from 模块名 import 功能名

基本语法:

复制代码
from 模块名 import 功能名

功能名()

案例:导入time模块中的sleep方法

复制代码
# 导入时间模块中的sleep方法
from time import sleep

print("开始")
# 让程序睡眠1秒(阻塞)
sleep(1)
print("结束")

2.3 from 模块名 import *

基本语法:

复制代码
from 模块名 import *

功能名()

案例:导入time模块中所有的方法

复制代码
# 导入时间模块中所有的方法
from time import *

print("开始")
# 让程序睡眠1秒(阻塞)
sleep(1)
print("结束")

2.4 as定义别名

基本语法:

复制代码
# 模块定义别名
import 模块名 as 别名

# 功能定义别名
from 模块名 import 功能 as 别名

案例:

复制代码
# 模块别名
import time as tt

tt.sleep(2)
print('hello')

# 功能别名
from time import sleep as sl
sl(2)
print('hello')

3 制作自定义模块

Python中已经帮我们实现了很多的模块. 不过有时候我们需要一些个性化的模块, 这里就可以通过自定义模块实现, 也就是自己制作一个模块

案例:新建一个Python文件,命名为my_module1.py,并定义test函数

注意:

每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 也就是说自定义模块名必须要符合标识符命名规则

4 测试模块

在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,

这个开发人员会自行在py文件中添加一些测试信息,例如,在my_module1.py文件中添加测试代码test(1,1)

复制代码
def test(a, b):
    print(a + b)


test(1, 1)

问题:

此时,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行`test`函数的调用

解决方案:

复制代码
def test(a, b):
    print(a + b)

# 只在当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行test函数调用
if __name__ == '__main__':
    test (1, 1)

注意事项:

当导入多个模块的时候,且模块内有同名功能. 当调用这个同名功能的时候,调用到的是后面导入的模块的功能

5 all

如果一个模块文件中有`all`变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素。

相关推荐
B站_计算机毕业设计之家2 分钟前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
渣渣苏10 分钟前
Langchain实战快速入门
人工智能·python·langchain
3GPP仿真实验室12 分钟前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
devmoon15 分钟前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
lili-felicity15 分钟前
CANN流水线并行推理与资源调度优化
开发语言·人工智能
沐知全栈开发16 分钟前
CSS3 边框:全面解析与实战技巧
开发语言
lili-felicity19 分钟前
CANN模型量化详解:从FP32到INT8的精度与性能平衡
人工智能·python
数据知道22 分钟前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
island131426 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构 Stream 调度机制
c语言·开发语言·神经网络
曹牧30 分钟前
Spring Boot:如何在Java Controller中处理POST请求?
java·开发语言