Python模块与包

1. 模块

1.1 模块介绍

Python 模块(module):一个 .py 文件就是一个模块 ,模块是 Python 程序的基本组织单位。在模块中可以定义变量,函数,类,以及可执行的代码

1.2 导入模块

在使用模块中提供的功能之前,必须得先导入,再使用。

每个模块内有多个功能:

导入模块的具体语法如下:

小结:

1.3 自定义模块

当开发一些复杂的项目,为了项目结构更加清晰,更便于项目的维护管理及代码的复用,可能会把一个项目拆分为若干模块

注意:每一个 Python 文件都可以作为一个模块,模块的名字就是文件的名字(建议使用 Python 标识符定义,规范命名)

1.3.1 _ _name__变量

_ name _ : Python中内置变量,表示当前模块的名字

  • 在当前模块内运行时,_ name 的值为 " main _"
  • 当在其他模块导入该模块运行时,_ name 的值为 " 模块名 _"

因此可以通过 _ name _变量来实现导入模块时避免该模块运行的功能

1.3.2 _ all _变量

_ all _是一个模块级别的特殊变量,用于指定 from 模块名 import * 时会导入哪些功能(即 * 通配了哪些功能)

其用法如下:在定义模块时

注意:_ all _控制的是 from ... import * 时,要导入的功能,并不会影响直接导入具体的功能(如:from ... import 功能)

1.3.3 小结

2.软件包(package)

包:本质就是一个文件夹 ,该文件夹中可以包含若干 python 模块(.py文件),文件夹下还包含了一个**_ init _.py**

作用:模块文件较多时,用来管理多个模块(包的本质也是一个模块)

包的导入方式:

注意:如果要通过**from 包名 import ***来导入包下的所有模块,需要在包的 _ init _.py文件中添加 _ all _ = "模块名"

导入包时可以使用的查找路径:

  • 相对路径:从当前文件所在目录开始查找包
  • 决定路径:从项目的根目录下开始查找包

小结如下:

相关推荐
yi0112 分钟前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
weixin1997010801611 分钟前
《1688消息服务落地方案:alibaba.message.* 与 Webhook 回调的可靠性与重试策略》(附Python源码)
开发语言·python
ZHOUPUYU21 分钟前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php
某不知名網友21 分钟前
ROS2 核心通信:话题发布与订阅详解
开发语言·c++
一只专注api接口开发的技术猿22 分钟前
Open‑Claw 实战|告别页面逆向,快速搭建电商商品监控与数据分析完整方案
大数据·数据库·python·数据挖掘·数据分析
C++ 老炮儿的技术栈23 分钟前
char (*csConnectName)[256]; 和 char csConnectName [256] 有什么区别
java·c语言·开发语言·c++·人工智能·算法·c
Nebula_g33 分钟前
JavaSE加强:线程Thread(线程安全重点)
java·开发语言·jvm·算法·javase·技术栈
小灰灰搞电子40 分钟前
Rust+Slint 实现一个终端软件源码分享(半成品)
开发语言·rust
大鹏说大话41 分钟前
C++ STL 容器怎么选?vector、list、map、unordered_map 对比
开发语言·c++·list
忆~遂愿44 分钟前
免密连接+快捷键+虚拟鼠标:ToDesk远程操作AI效率拉满
人工智能·python·深度学习·神经网络·自然语言处理·计算机外设·安全架构