Python入门篇【模块/包】

Python【模块/包】


文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、定义和作用

模块(Module)模块内部定义了函数,类和变量。可以理解为每一个模块就是一个工具包来供我们使用。


二、模块导入方式

python 复制代码
# 模块导入方式
[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名] # []表示可选
# 模块使用方式 模块名.功能名
import time
# 程序睡眠1s(阻塞)
time.sleep(1)

常用组合:

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

注意事项🚨

  • from可以省略,直接使用import即可。
  • as别名可以省略,简化长模块名、解决命名冲突是它的核心价值。
  • 通过(.)来确认层级关系。
  • 模块导入写在代码文件开头位置。

三、自定义模块

注意事项🚨

  • 自定义模块名必须符合标识命名规则。
  • 如果导入的多个自定模块中有同名的方法,会自动调用后者导入的方法而非前者。

3.1.内置变量main

python 复制代码
# 只有当程序是直接执行的才会进入if内部,如果是导入的不会执行。
if __name__ == '__main__':

3.2.all变量

python 复制代码
# all是一个列表
# 用于控制import *导入,只有标记了all的方法才会被导入(除非手动导入),否则不会被导入。
_all_ = ['test1']

四、包

包可以理解为一个文件夹,里面包含了各个Python模块。创建包时会自动创建一个_init.py_文件,此文件存在才说明这是一个包,一个包可以理解为一堆同类型功能的集合体。


4.1.Directory和Package区别

类型 Directory Package
本质 一个不包含 init.py 的文件夹 一个包含 init.py 文件的目录。
作用 仅用于存放文件或其他子目录,在 Python 中不被识别为可导入的模块 1.作为可导入的模块集合:可以在项目的其他地方通过 import 语句导入包内的模块。2.组织代码结构:将功能相关的模块放在同一个包下,让项目结构更清晰,便于维护。3.初始化包级资源:init.py 可以定义包级别的变量、函数或初始化逻辑,当包被导入时会自动执行。
使用场景 存放项目的配置文件、数据文件、日志等非代码资源,或临时存放脚本文件 封装项目的核心功能模块,比如一个 utils 包来存放工具函数,或一个 models 包来存放数据模型。

🚨通过在init.py文件中定义__all__ = '模块1','模块2','...'来控制inport *的范围。


五、第三方包

5.1.定义

在Python程序的生态中,有许多非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如:

  • 科学计算中常用的:numpy包
  • 数据分析中常用的:pandas包
  • 大数据计算中用的:pyspark、apache-flink包
  • 图形可视化常用的:matplotlib、pyecharts包
  • 人工智能常用的:tensorflow包
  • ...

但由于是第三方包,Python没有内置,需要我们去手动安装才可以导入使用。


5.2.安装使用

通过Python内置的pip程序来安装使用,即可通过网络进行安装。

python 复制代码
# 默认从国外网站下载,速度较慢
pip install 包名称
# 通过使用国内网站下载速度较快:https://pypi.tuna.tsinghua.edu.cn/simple
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称

相关推荐
vx_Biye_Design几秒前
springbootNBA数据分析系统平台42434-计算机课程设计、毕业设计
java·vue.js·spring boot·python·django·课程设计·express
计算机毕业编程指导师2 分钟前
【计算机毕设选题推荐】基于Spark的多源影视数据整合质量评估与可视化分析系统全解析 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·影视
苏离~Hack5 分钟前
惠民云平台开发实战:基于 Vue3 + Django 的社区服务系统设计与实现
后端·python·django
言乐69 小时前
HTML视频审核模型
python·django·virtualenv·pygame·tornado
言乐610 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
yl453010 小时前
硫酸泄露处理生产商怎么选才够专业
大数据·人工智能·python
笨笨饿10 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
for_ever_love__11 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
打工仔折腾 AI11 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
I Am a robert girl11 小时前
当传感器学会“说谎“:拆解可靠性门控的稀疏惯性动捕融合
python·姿态估计·传感器融合·惯性动捕·imu传感器·可靠性门控·可穿戴计算