当前位置: 首页 > news >正文

【Python】模块

1.模块的概念

Python中有一种方法可以把定义放在一个文件里面,并在脚本或者解释器的交互实例中使用它们。这样的文件被称作Python的模块。

2.自定义模块

在Python中,自定义模块有两个作用,一个作用是规范代码,让代码更容易阅读;另一个作用是方便其他程序使用已经编写好的代码,提高开发率。要实现自定义模块主要分为两部分,一部分是创建模块,另一部分是导入模块。

①创建模块

模块是在函数和类的基础上将一系列代码组织到一起的集合体,在Python中,一个模块就是一个扩展名.py的源程序文件。在一个模块内部,模块名(作为一个字符串)可以通过全局变量_ _ name_ _的值获取。

使用文本编辑器在当前目录下创建一个名为fibo.py的文件(Fibonacci为斐波那契数列),文件中的程序,如下所示:

②使用import语句和from…import语句导入模块

(1)使用import语句

模块创建完成后,其他程序就可以调用 。使用模块时,先以模块的形式,用import语句来加载模块中的代码。基本语法格式如下:

import modulename [as,alias]

其中,modulename为需要导入模块的名称,[as,alias]为给模块起的别名,通过该别名也可以使用模块。

(2)使用from…import语句

在使用import语句导入模块时,每执行一条import语句都会创建一个新的命名空间(namespace),from…import语句的基本语法格式如下:

from modulename import member

其中,modulename是模块名称,区分字母大小写,需要和定义模块时设置的模块名称的大写保持一致;member为用于指定要导入的变量函数和类等。可以同时导入多项定义式。

3.模块搜索路径

我们都知道,在使用Python时,无论是使用第三方的模块还是自己开发的模块,都需要现在代码中使用import来引入。

(1)在当前目录(即执行的Python脚本文件所在的目录)下查找。

(2)到PYTHONPATH(环境变量)下的每个目录查找。

(3)到Python的默认安装目录下查找

4.以主程序的形式执行

在外部调用某个模块时,可能会将只能在本模块执行的代码给执行了,但使用“if_ _name_ _== '_ _main_ _':”,这一代码能够让某些特定的代码指定只能在自身运行时才执行被调用时不执行。

5.Python中的包

①包

包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的Python应用程序执行环境。

简单来说,包是一个包含_ _init _ _.py文件的目录,该目录下一定要有_ _init _ _.py文件和其他的模块或者子包。

Python库是参考其他编程语言的说法,就是指Python中的完成一定功能的代码集合,供 用户使用的代码组合,在Python中是模块和包的形式。

②创建包

在D盘目录下,创建一个名称为bag的包,按照以下步骤进行。

(1)在我的文档下打开D盘,单击新建文件夹

(2)在新创建的文件夹命名为“bag”,然后单击进入文件夹

(3)在IDLE中创建一个名称为“_ _init _ _.py”的文件,保存在该文件夹下,且在该文件中不写入任何内容。

(4)至此,名为bag的包就创建完毕,之后就可以在该包中创建所需的模块了

③使用包

在文档中创建好包后,就可以在包中创建相应的模块,然后再使用import语句从包中加载模块。

从包中加载模块有三种方法。

(1)import+完整包+模块名

import bag.time

(2)from+完整包名+import+模块名

from bag import time

(3)from+完整包名+模块名+import+定义名

from bag.time import minutes,hours

6.标准库

Python标准库一共可以使用三种:turtle库、random库、time库。

turtle库中包含100多个功能函数,主要有窗体函数、画笔状态函数和画笔运动函数,可以进行基本图形的绘制。

random库中提供了不同类型的随机数函数,主要是用来生成随机数。其中最基本的函数是random.random(),它生成一个[0.0,1.0)之间的随机小数,所有其他随机函数都是基于这个函数扩展而来。

time库提供系统级精确计时器的计时功能,用来分析程序性能,也可以让程序暂停运行时间,是Python提供的处理时间标准库。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《Windows API每日一练》24.1 WinSock简介
  • Java中的notify()与notifyAll()区别
  • 探展2024世界人工智能大会之合合信息扫描黑科技~
  • Harmony学习(四)(应用程序框架基础)
  • 电影票房数据的获取,可以控制数量,并导出表格或csv
  • filebeat + logstash使用笔记
  • 优化PyCharm:让IDE响应速度飞起来
  • 一键生成视频并批量上传视频抖音、bilibili、腾讯(已打包)
  • 【vulnhub】The Ether: Evil Science靶机
  • 浦语提示词工程实践
  • 从文本到图像:深度解析向量嵌入在机器学习中的应用
  • 面试经验|问题
  • Linux配置go程序为service后台开机自启动
  • Spring统一返回类型中关于String的问题
  • linux源码编译qt6.5问题解决
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【知识碎片】第三方登录弹窗效果
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • CentOS7简单部署NFS
  • JavaScript中的对象个人分享
  • node-glob通配符
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Web设计流程优化:网页效果图设计新思路
  • WePY 在小程序性能调优上做出的探究
  • 从PHP迁移至Golang - 基础篇
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 让你的分享飞起来——极光推出社会化分享组件
  • 时间复杂度与空间复杂度分析
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 用mpvue开发微信小程序
  • 源码安装memcached和php memcache扩展
  • 怎样选择前端框架
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • # 达梦数据库知识点
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (2015)JS ES6 必知的十个 特性
  • (3)llvm ir转换过程
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .aanva
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net 提取注释生成API文档 帮助文档
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NetCore 如何动态路由
  • .NET和.COM和.CN域名区别