【python】模块与包

Python中的模块和包是组织和管理代码的重要工具。通过模块和包,你可以更好地管理和重用你的代码,使得代码更加模块化和可维护。

目录

前言

正文

一、模块

        1、模块的分类

                1)内置模块

                        python解释器中默认拥有的模块可以直接使用(如:os、random)

                2)第三方模块

                3)自定义模块

        2、模块的使用

                1)import 模块名 as 别名

                        2)from 模块名 import 函数名 

                        3)两种方式的优劣

二、包

        1、创建一个包

        2、包的使用,和模块的导入是一样的

三、内置变量__name__

总结


前言

        在一个文件中为了实现某些功能代码将会越来越长,这样就会导致代码的维护性以及可读性较差。为了避免这种情况,我们可以将不同的函数(功能)进行分类,放在不同的文件里,这样每个文件的代码相对较少。更利于我们进行代码的管理。


正文

一、模块

        模块是一系列功能(函数)的集合体

        1、模块的分类

                1)内置模块
                        python解释器中默认拥有的模块可以直接使用(如:os、random)
                2)第三方模块

                        由其他大佬写好的模块,需要到网上下载(如:requests、pandas)

                        下载方式:在终端中输入命令pip install 模块名 -i [镜像源]

                3)自定义模块

                        自己写的模块,模块名称需要遵循标识符的规定

        2、模块的使用

        先导入模块同一个模块只需要导入一次,通常是把导入模块的代码放在文件的开头导入后,可以在程序的任意地方使用模块里的功能。导入一个模块时模块中的代码会被执行一遍。

                1)import 模块名 as 别名

                        该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数

                        作用:导入模块中的所有内容

                        别名:当模块名太长时,可以通过as来重命名

例:

模块login.py中的内容

# 这是一个用于检查用户名与密码是否正确的的模块
def Login():user = input('请输入用户名:')password = input('请输入密码:')if user == '写代码也摆烂':if password == '123':return Truereturn False# 用于输出登入是否成功
def Login_TF(buer):if buer:print('登入成功')else:print('用户名或密码错误')

 main.py中的内容

# 这里是主文件
# 使用import直接调用调用登入模块
import login
# 该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数print('调用login.Login()的结果')print(login.Login())print('调用login.Login_TF(login.Login())的结果')login.Login_TF(login.Login())# 对模块名进行重命名
import login as lgprint('重命名后调用lg.Login()的结果')print(lg.Login())

运行main.py结果:

                2)from 模块名 import 函数名 

                        该方法是是用于指定导入模块中的功能/变量

                        作用:导入模块中指定的功能

                3)两种方式的优劣

                                优:使用import导入可以直接使用模块中的所有函数较为方便,使用form导入可以针对性的导入自己需要使用的函数, 所需要占用的资源少

                                劣:import直接导入所用功能,会占用较多的资源且模块中大部分的函数不会被使用到。使用from导入如果需要使用较多的函数时会比较麻烦

二、包

        如果说模块是功能(函数的集合体),那么包就是模块的集合体,它的作业与模块类似,不过它是用来对模块进行分类的。

        1、创建一个包

                步骤:new--python package(包的命名遵守标识符的规定)

                一个包本质上是一个包含了一些模块和一个特殊的 __init__.py 文件的目录。、

                __init__.py :导包的时候会自动执行init文件里

        2、包的使用,和模块的导入是一样的

        语法:import 包名.模块名

                  from 包名 import 模块名

                  from 包名.模块名 import 函数名/变量名

三、内置变量__name__

         当 Python 解释器加载一个模块时,它会将该模块的名称赋值给 __name__ 变量。如果模块是主程序,Python 解释器会将 __name__ 设置为 "__main__";否则,如果模块是被导入的,__name__ 就是模块的名称。

作为主程序运行时:

 作为模块被引用时(导入一个模块时模块中的代码会被执行一遍):

         该变量常用于判断一个文件是被直接执行还是被导入到另一个文件中执行。通常用于测试模块中的功能是否能正常使用。

# 这是一个用于检查用户名与密码是否正确的的模块
def Login():user = input('请输入用户名:')password = input('请输入密码:')if user == '写代码也摆烂':if password == '123':return Truereturn Falseif __name__ == '__main__':# 判断该文件是否被直接执行,如果是则执行以下代码# 以下代码用于测试该文件中的函数是否能正常使用# 如果该文件被当作模块来调用则不会执行以下代码print(__name__)Login()

直接运行该文件(运行了if中的语句):

 

 调用该文件(没有执行if中的语句):


总结

       多个数据放在一起称为 列表、元组、字典、集合等

        多个语句放在一起完成一个功能,称为函数

        多个函数放在一起,称为模块

        多个模块放在一起,称为包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户需求甄别和筛选的6大标准

产品经理日常经常接收到大量的需求,并不是所有的需求都需要开发,需要进行甄别和筛选,这样有利于确保项目的成功、优化资源利用以及提高产品质量。 那么针对这些用户需求进行甄别或筛选的评判标准是什么?需求筛选可以说是初步的需求…

代码随想录-算法训练营day31【贪心算法01:理论基础、分发饼干、摆动序列、最大子序和】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第八章 贪心算法 part01● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其…

C++牛客周赛题目分享(2)小红叕战小紫,小红的数组移动,小红的素数合并,小红的子序列求和

目录 ​编辑 1.前言 2.四道题目 1.小红叕战小紫 1.题目描述 2.输入描述 3.输出描述 4.示例 5.题解与思路 2.小红的数组移动 1.题目描述 2.输入描述 3.输出描述 4.示例 5.题解与思路 3.小红的素数合并 1.题目描述 2.输入描述 3.输出描述 4.示例 5.题解与思…

云原生新手和开源教育分论坛 01-Kubernetes 社区:从新手到影响者

2024年04月20日 上海KCD & Shanghai:https://community.cncf.io/events/details/cncf-kcd-shanghai-presents-kcd-shanghai-2024/视频观看:https://www.bilibili.com/video/BV1nD421T786/?spm_id_from333.999.0.0&vd_sourceae7b192be069682aabc…

【FreeRTOS 快速入门】-- 1、STM32工程移植FreeRTOS

目录 一、新建STM32工程 为了示范完整的移植过程,我们从0开始,新建一个标准的STM32点灯工程。 (本篇以CubeMX作示范,CubeIDE操作近同,可作对比参考) 1、新建工程 选择 芯片型号 新建工程 2、搜索芯片型号…

24年做抖音小店,你还停留在数据?别人都已经开始注重利润了

大家好,我是电商笨笨熊 一件事情持续做,一个项目持续深耕,意义到底是什么? 这句话我常常说,但很多人似乎走偏了实际意义; 尤其对于新手来说,做抖音小店总是向往某某老玩家多么牛的数据&#…

程序员健康指南:运动,让代码更流畅

程序员健康指南:运动,让代码更流畅 程序员,一个与电脑相伴的群体,长时间的久坐和高强度的脑力劳动是他们的日常。然而,久坐不仅影响体态,更对心脏健康构成威胁。根据《欧洲心脏杂志》的研究,中…

【PPT技巧】ppt文件打开就是只读模式,如何改为可编辑模式?

PPT文档打开是只读模式,如何改成可编辑文档呢?这需要分几种情况来说,所以今天将介绍几种方法帮助PPT只读文档改为可编辑文档。 方法一: 我们可以先查看一下文件属性,属性中有只读属性,当我们打开文档之后带…

C++入门——引用(2)

前言 上一节我们开始学习了C,并且对C有了初步的了解,这一节我们继续学习C的基础,那么废话不多说,我们正式进入今天的学习 C中的引用 1.1引用的概念 引用不是新定义一个变量,而是给已存在变量取了一个别名&#xff0…

uniapp小程序:大盒子包裹小盒子但是都有点击事件该如何区分?

在开发过程中我们会遇到这种情况,一个大盒子中包裹这一个小盒子,两个盒子都有点击事件,例如: 这个时候如果点击评价有可能会点击到它所在的大盒子,如果使用css中的z-index设置层级的话如果页面的盒子多的话会混乱&…

Spring解决泛型擦除的思路不错,现在它是我的了。

你好呀,我是浮生。 Spring 的事件监听机制,不知道你有没有用过,实际开发过程中用来进行代码解耦简直不要太爽。 但是我最近碰到了一个涉及到泛型的场景,常规套路下,在这个场景中使用该机制看起来会很傻,但…

15、FreeRTOS 软件定时器

文章目录 一、什么是定时器?1.1 定时器的理解1.2 软件定时器的特性 二、 软件定时器的上下文2.1 守护任务2.2 守护任务的调度2.3 回调函数 三、软件定时器的函数3.1 创建3.2 删除3.3 启动/停止3.5 修改周期3.6 定时器ID 四、案例4.1 一般使用4.2 消除抖动 一、什么是定时器? …

Midjourney Imagine API 申请及使用

Midjourney Imagine API 申请及使用 申请流程 要使用 Midjourney Imagine API,首先可以到 Midjourney Imagine API 页面点击「Acquire」按钮,获取请求所需要的凭证: 如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登…

语音转文字服务的调用接口

语音转文字(Speech-to-Text,STT)技术允许将口语化的语音转换成书面文字。以下是一些提供语音转文字服务的调用接口及其特点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.讯飞开放平台语音转写…

[猫头虎分享21天微信小程序基础入门教程]第1天:微信小程序概述与开发环境搭建教程

第1天:微信小程序概述与开发环境搭建 😺 文章目录 第1天:微信小程序概述与开发环境搭建 😺自我介绍微信小程序概述特点 开发环境搭建步骤1: 注册微信小程序账号步骤2: 安装开发者工具步骤3: 熟悉开发者工具界面 今日学习总结小测试…

炒股开户佣金最低万1和万0.854,融资融券现在利率最低4.0%~5%

​​炒股开户佣金一般是万1和万0.854,万0.854有一定的资金量要求,高于万1的是可以申请降低的。 开户万1佣金和万0.854佣金只需要联系证券公司客户经理协商就行。 开户流程: 1、向客户经理索要开户链接或者扫描二维码、进入申请页面&#x…

本地搭建各大直播平台录屏服务结合内网穿透工具实现远程管理录屏任务

文章目录 1. Bililive-go与套件下载1.1 获取ffmpeg1.2 获取Bililive-go1.3 配置套件 2. 本地运行测试3. 录屏设置演示4. 内网穿透工具下载安装5. 配置Bililive-go公网地址6. 配置固定公网地址 本文主要介绍如何在Windows系统电脑本地部署直播录屏利器Bililive-go,并…

Nachi那智不二越机器人维修技术合集

一、Nachi机械手维护基础知识 1. 定期检查:定期检查机器人的各个部件,如机械手伺服电机、机器人减速器、机械臂传感器等,确保其运行正常。 2. 清洁与润滑:定期清洁Nachi工业机器人表面和内部,并使用合适的润滑油进行润…

VRRP协议-负载分担配置【分别在路由器与交换机上配置】

VRRP在路由器与交换机上的不同配置 一、使用路由器实现负载分担二、使用交换机实现负载分担一、使用路由器实现负载分担 使用R1与R2两台设备分别进行VRRP备份组 VRRP备份组1,虚拟pc1的网关地址10.1.1.254 VRRP备份组2,虚拟pc2的网关地址10.1.1.253 ①备份组1的vrid=1,vrip=…

vue3中使用cherry-markdown

附cherry-markdown官网及api使用示例 官网:https://github.com/Tencent/cherry-markdown/blob/main/README.CN.md api:Cherry Markdown API 考虑到复用性,我在插件的基础上做了二次封装,步骤如下: 1.下载 (一定要指定版本0.8.22,否则会报错: [vitel Internal server e…