Python模块与包(八)

news2024/9/23 4:24:31

python学习之旅(八)
👍查看更多可以关注查看首页或点击下方专栏目录

一.模块

(1) 什么是模块

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

  • 作用:我们可以认为不同的模块就是不同工具包,每一个工具包中都有各种不同的工具(如函数)供我们使用进而实现各种不同的功能.

(2) 模块的导入

模块在使用之前需要先导入正在开发的文件

  • 导入语法:
[from 模块名] import [模块||变量|函数|*] [as 别名]
# *表示导入所有
  • 常用的组合形式如:
  1. import 模块名
  2. from 模块名 import 类、变量、方法等
  3. from 模块名 import *
  4. import 模块名 as 别名
  5. from 模块名 import 功能名 as 别名

(2.1) 用法一

  • 基本语法:
# 导入
import 模块名
import 模块名1,模块名2

# 使用
模块名.功能名()
  • 使用示例:
# 导入时间模块         
import time      
print("开始") # 打印 开始   
# 使用time模块中睡眠功能(其中还有众多其他功能)  
# 可以让程序睡眠10秒后再继续执行
time.sleep(10)   
print("结束") #十秒后打印 结束    

请添加图片描述

(2.2) 用法二

  • 基本语法
# 导入
from 模块名 import 功能名

# 使用
功能名()
  • 使用示例:
# 导入时间模块中的sleep方法
# 只能使用time模块中导入的sleep的方法
from time import sleep
print("开始") # 打印 开始   
# 让程序睡眠10秒后再继续执行
sleep(10)   
print("结束") #十秒后打印 结束   
  • 效果图与(2.1)一致

(2.3) 用法三

  • 基本语法
# 导入一:模块定义别名
import 模块名 as 别名

# 使用一:
别名.功能名()

# 导入二:功能定义别名
from 模块名 import 功能 as 别名

# 使用二:
别名()
  • 使用示例一:
# 本名time将不可用
import time as tt  
print("开始") # 打印 开始   
# 让程序睡眠10秒后再继续执行
# 通过别名调用
tt.sleep(10)   
print("结束") #十秒后打印 结束   
  • 使用示例二:
# 本名sleep将不可用
from time import sleep as sl
print("开始") # 打印 开始   
# 让程序睡眠10秒后再继续执行
sl(10)   
print("结束") # 十秒后打印 结束   
  • 效果图与(2.1)一致

(2.4) 用法四

  • 基本语法
# 导入
from 模块名 import *

# 使用
功能名()
  • 使用示例:
# 导入时间模块中的全部功能
# 导入效果与(2.1)一致,使用与(2.2)一致
from time import *
print("开始") # 打印 开始   
# 让程序睡眠10秒后再继续执行
sleep(10)   
print("结束") #十秒后打印 结束   
  • 效果图与(2.1)一致

(2.5) 小结

  • from可以省略,直接import
  • as别名可以省略
  • 通过”.”来调用模块提供的功能
  • 模块的导入一般写在代码文件的开头位置

(3) 自定义模块

  • Python中已经帮我们实现了很多的模块,直接导入即可使用

  • 有时候我们需要一些个性化(满足自己特定需求)的模块, 就可以通过自定义模块实现,即自己制作一个模块

  • 上述提到:每个Python文件都可以作为一个模块,模块的名字就是文件的名字.也就是说将自己编写的文件导入另一个文件即可当作模块使用。

  • 使用示例:
    请添加图片描述

  • 运行test_04.py打印结果:
    请添加图片描述

(3.1) 注意一

  • 在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,开发人员可能会在在py文件中添加一些测试信息

  • 此时,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行测试信息

  • 例如:
    请添加图片描述

  • 测试完后未删除测试信息并未使用其他措施,打印结果:
    请添加图片描述

  • 解决

    • 测试完后直接删除(繁琐,容易忘,不推荐)

    • if条件判断中使用

      • 使用示例,此时只有运行test_03才会执行测试代码,运行test_04时不再执行测试代码:
        请添加图片描述
    • 使用解释:

    # 只在当前文件中运行条件才为True,导入其他文件时均为False
    if __name__ == '__main__':
    # __main__ 运行时程序的名称
    # __name__ 系统自动赋值,不用管
    # 在Run时为 __main__ 
    # 未Run时为 文件名称
    

(3.2) 注意二

  • 当导入多个模块的时候,如果模块内有同名功能,且未使用用法一导入形式,后面导入的模块将会覆盖前面模块内同名的功能。

  • 例如:
    请添加图片描述

  • 结果:
    请添加图片描述

(3.3) 注意三

  • 如果一个模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素
    请添加图片描述

  • 其他导入方式不受限制


二.包

当Python的模块太多了,就可能造成一定的混乱,此时可以通过Python包的功能来管理。

(1) 什么是包

  • 从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件

  • 从逻辑上看,包的本质依然是模块
    请添加图片描述

(2) 自定义包

  • 当我们的模块文件越来越多时,包可以帮助我们分类管理这些模块,包的作用就是包含多个模块,但本质依然是模块
    请添加图片描述

(2.1) 创建包

  • 新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为
    请添加图片描述

(2.2) 导入包

  • 导入包与导入模块几种方式类似,例如:
import 包名.模块名

包名.模块名.功能名()

请添加图片描述

(2.3) 限制导入

  • 可以在__init__.py文件中添加__all__ = ['模块名'],控制允许导入的模块列表

  • 与导入模块类似__all__只针对from 包名.模块名 import *而对其他方式无效

(3) 安装第三方包

第三方(其他人)开发的,Python没有内置,需要先安装才可以导入使用

  • 在Python程序的生态中,有非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如:
    • 科学计算中常用的:numpy包
    • 数据分析中常用的:pandas包
    • 大数据计算中常用的:pyspark、apache-flink包
    • 图形可视化常用的:matplotlibpyecharts
    • 人工智能常用的:tensorflow

(3.1) 如何安装

  • 只需要使用Python内置的pip程序即可

  • 在终端中输入如下指令即可通过网络快速安装第三方包:

pip install 包名称
  • 例如安装科学计算中常用的:numpy包,安装成功后即可导入使用:
    请添加图片描述

(3.2) 提高安装速度

  • 由于pip是连接的国外的网站进行包的下载,下载速度经常很慢。
    请添加图片描述

  • 我们可以通过如下命令,让其连接国内的网站进行包的安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
# 网站为清华大学提供的一个网站,可供pip程序下载第三方包

(3.3) 在Pycharm中安装

请添加图片描述

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

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

相关文章

Vue初识系列【2】

一 Vue入门 1.1 Vue简介 Vue 是一套用于构建用户界面的渐进式框架,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如&a…

ZYNQ printk 缓冲区读取

之前调试kenel ,如果kenenl崩溃会,通过内核system.map定位log_buf变量地址,给cpu复位,在u-boot中读取对应的物理地址,即可知道最终内核崩溃最后打出的消息。 我在使用 5.4.154这个内核版本,中没有log_buf这…

金蝶附件上传接口开发思路

1️⃣需求描述:需要通过调用金蝶API接口实现指定单据的附件上传。本文以收料通知单为例,以Java代码示例进行讲解。 tips:阅读本文开始前,希望你是一名开发者同时阅读过: https://vip.kingdee.com/article/872325739310…

【小知识点】为爬虫训练场项目添加 Bootstrap5 时间轴

爬虫训练场建站时间轴:https://pachong.vip/timeline 背景 为了便于记录爬虫训练场项目更新日志,所以集成该功能,实现效果如下所示。 特别备注一下,时间轴是什么? 时间轴是一种常用的网站布局元素,通常用…

Forexclub:特斯拉四季度交付车辆创纪录,你认为2023年特斯拉销量如何

周一特斯拉宣布其2022年第四季度交付了创纪录的405278辆汽车。这一数字创下了该公司的纪录,但低于华尔街的估计。据报道,报告中对交付量的普遍估计为420760。特斯拉称:“2022年,汽车交付量同比增长40%,达到131万辆。”…

基于Vue和SpringBoot的论文检测系统的设计与实现

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

【信息论与编码 沈连丰】第七章:信息率失真理论及其应用

【信息论与编码 沈连丰】第七章:信息率失真理论及其应用第七章 信息率失真理论及其应用7.1 失真函数和平均失真度7.2 信息率失真函数7.3 信息率失真函数R(D)的计算7.4 保真度准则下的信源编码定理7.5 信息率失真函数与信息价值第七章 信息率失真理论及其应用 香农第…

网工、运维必备的免费在线画图工具,真的很好用!

都说一图胜千言,一个IT工程师如果能画的一手好图,无论是在方案选项、还是技术交流,都能快速表达自己的想法,让你的思路更加的直观明了;市面上的制图工具有很多,下面就推荐几款好用且免费的工具,…

SaaS服务最大的优势是哪些?(附免费试用)

SaaS服务十大优势 近些年来,SaaS(Software-as-a-Service)成为整个IT领域中最受欢迎的业务模型之一。由于SaaS的市场每年以近60%的速度增长,因此它正在取代更传统的应用市场,并将在未来几年内成为主导模式。…

【非侵入式负载监测】低采样率电动汽车充电的无训练非侵入式负载监测(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

一、TTY子系统介绍

个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!文章目录1、TTY介绍2、控制台终端2.1 系统控制台2.2 当前控制台2.3 虚拟控制台3、伪终端4、串口终端5. 其它类型…

《移动安全》(10)Frida第一篇之环境搭建

0x00 前言 Frida是一款轻量级HOOK框架,我们在电脑上安装Frida环境后,还需要将frida-server上传到目标机器上运行(需要Root),通过它来注入进程完成hook操作。本文主要讲述Frida环境的搭建。 0x01 Frida环境搭建 &…

node.js创建网站实例3

node.js访问mysql数据库并把查询结果返回给前端 1.cmd中运行:npm install mysql -s 2.修改api.js的代码 // 1.先引入express模块,express是一个函数 var express require("express") //2.执行express函数;用变量接收express函数…

概论_第2章_重点_随机变量函数的概率分布___定理法和分布函数法的应用

一 定义 概括地说: 随机变量Y是随机变量X的函数。 设g(x) 是一给定的连续函数, 称Yg(X) 为随机变量X的一个函数, Y也是一个随机变量。当X取值 时,Y取值 . ~~~~~~~~~~~~~~ 本文讨论连续型随机变量函数。 定理1: 设X为连续型…

【3.2】Eureka-搭建注册中心/服务注册/服务发现

【3.2】Eureka-搭建注册中心/服务注册/服务发现1 搭建EurekaServer1.1 详细步骤1.2 搭建EurekaServer小结2 服务注册2.1 详细步骤(踩坑点!解决)2.2 模拟多实例部署2.3 服务注册小结3 服务发现3.1 详细步骤4 总结1 搭建EurekaServer 搭建Eure…

2022年,我每天都会用的linux常用命令

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Linux常用命令 1.Linux命令概述 2.Linux命令的分类 &#…

科研 | 学生研究方向指导 | 技术路线 | 相关学习资源

1. AI某领域 1.1 Python基础 慕课教程:Python 入门语法教程 哔哩哔哩:3小时快速入门Python 1.2 机器学习框架 sklearn框架:菜菜的机器学习sklearn 1.3 深度学习框架 慕课教程:TensorFlow 入门教程 PyTorch官方教程中文版 不…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的AI作画模型!

目录给我推荐20个比较流行的AI作画模型给我推荐20个比较流行的AI作画模型代码给我推荐20个比较流行的AI作画模型 好的,下面是20个比较流行的AI作画模型: DALL-E GAN Deep Dream CycleGAN StyleGAN pix2pix SketchRNN BigGAN ProGAN ESRGAN SPADE BigVA…

Vue+Leaflet.PM插件实现创建和编辑几何图形(点、线、面、圆等)

场景VueLeaflet实现加载OSM显示地图:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122317394在上面加载显示OSM的基础上,使用Leaflet.pm插件实现在页面上绘制、编辑、剪切、移动几何元素。Leaflet.pm插件用于创建和编辑几何图层的插件可绘…

如何避免无效外贸邮件营销?

如何避免无效的邮件营销,米贸搜为您整理如下,希望对您有所帮助:1 .和邮件正文一样重视主题主题对于电子邮件就像标题对于文章或博客一样重要。即使你有全宇宙最吸引人的散文诗,或者最吸引人的求婚,如果根本没有人打开这封邮件&…