045.Python包和模块_初识包和模块

无奋斗不青春

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

分隔线

初识包和模块

      • 包和模块的概念
      • 包和模块的作用
      • 包和模块的分类
        • 标准包/模块
        • 第三方包/模块
        • 自定义包/模块
      • 包和模块的创建
        • 模块的创建
        • 包的创建
        • 多层级包的创建
      • 包和模块的基本信息
        • 包和模块的名称
        • 包和模块的位置
        • 包和模块里面的内容

包和模块的概念

  • 模块是一组相关的函数和数据的集合,而包是一组相关模块的集合

  • 模块

    • 为了使代码更容易维护,提高代码重用价值;可以将一组相关功能的代码写入一个单独的.py文件中供别人导入使用;这个.py文件就被称作是一个模块
    • 在这里插入图片描述
    • 包是一个有层次的文件目录结构,它定义了由n个模块或n个子包
    • 具体表现形式
      • 包含__init__.py文件的目录
      • 这个目录下一定得有这个__init__.py文件和其它模块或子包
    • 在这里插入图片描述
    • 参照其他编程语言的一个喊法
    • 完成一定功能的代码集合;
    • 具体表现可以是一个模块,也可以是包
  • 框架

    • 一个架构层面的概念;
    • 从库功能的角度来看:
      • 解决一个开放性问题而设计的具有一定约束性的支撑结构
    • 通过一个框架,可以快速实现一个问题解决的骨架;到时按照框架
      角色去填充,交互就可以完成—个质量好,维护性高的项目
    • 例如:Web框架
      Flask
      Django
      


包和模块的作用

  • 1、编写好一些“轮子”工具代码,供其他模块调用
    • 有效的对程序进行分解,方便代码的管理和维护
  • 2、防止同一模块内的命名重复问题


包和模块的分类

标准包/模块
  • 标准包/模块
    • 安装Python后,自动帮我们安装好的一些模块,可以直接导入使用(满足我们基本的功能需求)
    • 每个安装Python的用户电脑上都有这些模块,在你电脑上写的使用某个系统模块的代码,到其他人电脑上,同样能够运行满足我们基本的功能需求
  • 特殊:内建包/模块
    • 当我们在编码的过程当中,python自动帮我们导入的模块;
    • 我们使用这些功能的时候,不需要手动的导入该模块,直接使用就可以
    • 如:builtins模块,可以通过dir(builtins)查看内建模块当中可用的API(在python2.x中是__builtin__)
第三方包/模块
  • 有些功能,系统模块没有实现,或者实现了但我们使用起来比较复杂,就有开发人员,开发了一些使用更加方便的模块,供其他开发人员使用
    • 有可能也使用到了系统的某些横块
    • 有可能没有使用
  • 其他开发人员,需要下载安装才可以
    • 如果你的代码使用了菜个三方模块,到时候把代码拷贝给别人后,别人也需要先安装同样的三方模块后才能运行
  • 如:requests模块
自定义包/模块
  • 我们自己写的一些好用的模块
  • 发布出去给别人用,就变成了三方包/模块


包和模块的创建

模块的创建
  • 直接创建一个.py文件即可
包的创建
  • 创建一个文件夹,文件夹内务必创建一个__init__.py文件(并非必须)
    • 在python3.3版本往后可以不用创建,但是为了版本兼容,以及做一些其他包处理操作,目前还是建议创建)
  • __init__.py文件的作用
    • 第一次导入包的时候,会自动调用执行__init__.py文件
多层级包的创建
  • 在包里面直接创建另外一个包即可,可以无限级嵌套


包和模块的基本信息

包和模块的名称
  • 模块名称:就是py文件的名称,但不包含.py这个后缀
  • 包名称:就是文件夹(目录)的名称
包和模块的位置
  • 查看标准包和模块的位置
    模块名.__file__import 包名
    包名.__file__# 包名.__file__ 获取到的实际是包内部__init__.py文件的位置,如果没有__init__.py文件,则返回None
    
包和模块里面的内容
  • 查看包和模块里面的内容(API)
    dir(模块名)import 包名
    dif(包名)
    

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

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

相关文章

【工具使用-有道云笔记】如何在有道云笔记中插入目录

一,简介 本文主要介绍如何在有道云笔记中插入目录,方便后续笔记的查看,供参考。 二,具体步骤 分为两个步骤:1,设置标题格式;2,插入标题。非常简单~ 2.1 设置标题格式 鼠标停在标…

解决PyCharm打开出现Cannot load settings from file错误

解决PyCharm打开出现Cannot load settings from file错误 背景 pycharm打开过的项目,关闭项目或者IDE后再次打开,右下角会出现cannot load settings from file,如图1所示。 图1 随后,我浏览许多国内外的论坛,帖子&…

linux中playbook的控制语句

本章主要介绍 playbook中的控制语句。 使用 when 判断语句 block-rescue判断 循环语句 一个play中可以包含多个task,如果不想所有的task全部执行,可以设置只有满足某个 条件才执行这个task,不满足条件则不执行此task。本章主要讲解when 和 …

web前端html笔记2

新增状态标签<meter><progress> <meter> 属性 值 描述 high 数值 规定高值 low 数值 规定低值 max 数值 规定最大值 min 数值 规定最小值 optimum 数值 规定最优值 value 数值 规定当前值 <body> <meter high"50" …

三个月真的可以学会自动化测试吗?不是骗局把?

三个月可以学会&#xff0c;但是想要达到精通还需更多的时间。 目前行业内对于自动化测试的还是存在很多误区的&#xff0c;管理层为了自动化而去自动化&#xff0c;学习者学到最后只会用一些工具。 关于学习路线&#xff0c;我放在后面讲&#xff0c;在此之前必须先聊一下行…

Jmeter多种定时器实现方法解析

1、固定定时器&#xff08;Constant Timer&#xff09; 用法(场景)&#xff1a;更真实的模拟用户场景&#xff0c;需要设置等待时间&#xff0c;或是等待上一个请求的时间才执行&#xff0c;给 sampler 之间的思考时间 备注&#xff1a;如果需要每个步骤均延迟&#xff0c;则…

Postman报:400 Bad Request

● 使用Postman发送Post请求报400&#xff0c;入参为JSON&#xff1b; 二、分析 1、Postman请求并没有请求到后台Api&#xff08;由于语法错误&#xff0c;服务器无法理解请求&#xff09;&#xff1b; 2、入参出错范围&#xff1a;cookie、header、body、form-data、x-www-f…

OpenCV-Python(18):图像梯度

目录 背景介绍及应用 学习目标 原理 Sobel算子和Scharr算子 Laplacian 算子 代码示例 重要提醒 背景介绍及应用 图像的梯度是指图像中每个像素点的强度变化情况。计算图像的梯度可以帮助我们了解图像中物体的边界和纹理等信息。梯度在计算机视觉和图像处理领域有着广泛…

Android开发——添加图片

1、首先选择一张需要的图片&#xff0c;通过左侧的Resource Manage选择“”并选择Import Drawables 选择一张图片 并调整以下两个内容 这两个内容的作用借用谷歌官方的Android开发教程的内容&#xff1a; *Android 设备具有不同的屏幕尺寸&#xff08;手机、平板电脑和电视等…

Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)

步骤一&#xff1a;管脚配置确认。 ①配置定时器的管脚模式为复用推挽输出模式&#xff08;GPIO_MODE_AF_PP&#xff09;&#xff01;&#xff01;&#xff01;&#xff0c;注意&#xff1a;复用开漏模式软件仿真时无波形。 步骤二&#xff1a;编译程序。 ①点击编译按钮。 …

java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)

目录 1、检查项目中 JDK 的设置&#xff1a; 2、检查模块中 JDK 的设置&#xff1a; 3、检查Idea 中的SDK设置 4、检查 IDEA 中 JDK 的设置&#xff08;我出现的问题在这&#xff09;&#xff1a; 今天遇见了一个报错&#xff1a; 问题产生的原因是 JDK 版本太低&#xf…

信息收集 - 谷歌hack

搜索引擎 FOFA网络空间测绘:https://fofa.info/ FOFA(FOcus on Assets)是一个网络空间搜索引擎,可以帮助用户快速定位和收集特定目标的信息。 ZoomEye:https://www.zoomeye.org ZoomEye 是一个网络空间搜索引擎,可以用于发现和收集特定目标的网络设备、Web应用程序、开放…