Python——模块与包

news2024/9/21 7:58:02

一、模块
(1)模块的定义
模块——Modules,通常一个py文件就是一个模块,我们在一个py文件里面会定义多个函数,也就是说一个模块中可以包含N多个函数。
(2)模块化编程的好处
①方便其他程序和脚本的导入并使用
②避免函数名和变量名冲突
③有利于代码的复用和维护
(3)自定义模块
就是新建一个py文件,文件的命名规则就是不要与Python自带的标准模块名称相同。
在这里插入图片描述
(4)模块的导入
方式一

import  模块名称 [as 别名]

这里采用math模块进行演示,math模块就是数学运算的模块。
例如,这里应用math模块输出pi的值和计算2的3次方。

import math
print(id(math))
print(type(math))
print(math)
print(math.pi)
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3)))

运行结果
在这里插入图片描述
方式二

from 模块名称 import 函数/变量/

例如

from math import pow
print(pow(2,3))

运行结果
输出浮点型的数据
在这里插入图片描述
二、以主程序的方式运行程序
在每个模块的定义中都包括一个记录模块名称的变量name,程序可以检查这个变量,从而确定在哪个模块里面进行执行。如果一个模块没有被导入到其他程序中,那么它就被当作主程序去运行,如果被导入到其他模块中就不一定会被当作主程序去运行。
这里我们需要建立两个文件进行演示。
首先,新建一个具有加法功能的模块
先不加以下语句

 if __name__=='__main__':

具有加法功能模块的完整程序

def add(a,b):
    return a+b

# if __name__=='__main__':
print(add(1,2))

将该模块导入到其他模块中

import addition
print(addition.add(10,20))

运行结果
在这里插入图片描述
由运行结果可以发现,它把导入的模块的函数也当作主程序运行,并输出了结果
现在在被导入的模块里加上

 if __name__=='__main__':

即完整程序

def add(a,b):
    return a+b

if __name__=='__main__':
   print(add(1,2))

运行导入了加法模块的程序,运行结果为
在这里插入图片描述
三、Python中的包
(1)包的定义及作用
包是一个分层次的目录结构,它的作用是将一组功能相近的模块组织在一个目录,包的作用是使得代码更加规范,同时也避免了模块名称的冲突。
(2)包与目录的区别
包与目录的区别在于包里面包含了init.py文件,目录里面不包含这个文件。
在这里插入图片描述
在这里插入图片描述
(3)包的导入方式
首先建立package,然后在里面建立两个模块。
在这里插入图片描述
然后建立一个模块,也就是一个py文件

#导入包
#导入的时候如果名字过长可以使用别名
import  package1.ma as ma
print(ma.a)

运行结果
在这里插入图片描述
(4)导入的注意事项
①使用import后面只能跟包或者是模块;
②使用from import 进行导入既可以是模块也可以是变量,还可以是包。
四、Python中常用的内置模块
在这里插入图片描述
五、第三方模块的安装与使用
(1)模块安装
①终端 pip install
在这里插入图片描述
在这里插入图片描述
(2)模块使用
import 模块名
六、总结
在这里插入图片描述

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

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

相关文章

从0到1精通自动化测试,pytest自动化测试框架,allure描述用例详细讲解(二十二)

一、前言 pytestallure是最完美的结合了,关于allure的使用,本篇做一个总结。 allure报告可以很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等 环境准备: 1.python 3.6 2.pytest 4.5.…

使用Jetpack Compose创建滑动刷新(SwipeRefreshLayout)

Compose并未像View-based系统那样内建SwipeRefreshLayout。但Compose鼓励你自行创建需要的可组合函数,它提供了足够的工具供你完成此任务。 在本篇博客中,我们将展示如何在Jetpack Compose中创建滑动刷新界面的过程。但请注意,以下代码相当简…

flutter:实现一个简单的appBar上的搜索框、一个简单的搜索历史

搜索框 效果图 代码 import package:flutter/material.dart;class NovelSearch extends StatefulWidget {overrideState<StatefulWidget> createState() > _NovelSearchState(); }class _NovelSearchState extends State<NovelSearch> {String searchVal ;o…

DSP的CLA编程及注意事项之一

CLA简介 CLA(Control Law Accelerator),即控制律加速器&#xff0c;该 CLA 是完全可编程的独立 32 位浮点 CPU&#xff0c;专为优化数学密集型计算而设计&#xff0c;可显著提升控制算法的性能。与 执行指令和处理中断的标准传统处理器不同&#xff0c;CLA 实际上是任务驱动状…

Axure教程—上传文件

本文介绍用Axure制作文件上传效果 预览 预览地址&#xff1a;https://6q4of2.axshare.com 功能 1、点击”文件上传“按钮&#xff0c;显示上传的文件 2、点击”删除“图片&#xff0c;显示提示”是否要删除“&#xff0c;点击”是“&#xff0c;删除数据&#xff0c;点击”否…

开放式蓝牙耳机好不好,列举出几款值得入手的开放式蓝牙耳机

开放式耳机不仅能够提升幸福感还能听到周围环境声&#xff0c;大大提高安全性&#xff0c;不入耳不伤耳设计&#xff0c;既稳固又舒适&#xff0c;佩戴上耳无压力&#xff0c;还具有良好的音质和舒适的佩戴体验。但市面开放式耳机质量也参差不齐&#xff0c;有些使用感不佳&…

高压放大器使用说明书

高压放大器是一种电子设备&#xff0c;可以将输入信号的电能转换成输出信号的电能&#xff0c;从而实现信号放大的功能。它广泛应用于各种领域&#xff0c;例如通信、雷达、医疗等等。下面是一份高压放大器使用说明书&#xff0c;帮助用户更好地了解和使用该设备。 一、高压放大…

追思郭文彬:不管封我当什么长,下辈子我还当厨师!

6月28日&#xff0c;在北京联合大学旅游学院餐饮管理系的走廊&#xff0c;大大的长条桌上摆放着各类像生面点、面塑、包子等美食作品——牡丹、玉兰花、灯笼、小金鱼、花生、龙眼、山竹、翡翠白菜……作品精巧细致&#xff0c;形神兼备&#xff0c;宛若工艺品。 这些作品都出自…

MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询

文章目录 在 handle 包下新建Jsonb处理类方式一方式二 PostgreSQL jsonb类型保存新建数据库表含有jsonb类型创建实体类Control创建保存数据库方法发起请求 PostgreSQL jsonb类型查询Control创建查询数据库方法发起请求 在 handle 包下新建Jsonb处理类 方式一 import com.alib…

(css)el-image图片完整显示,不拉伸收缩

(css)el-image图片完整显示&#xff0c;不拉伸收缩 <el-imagefit"contain" //重要设置src"../../../../1.png"altclass"chenguo_img_img" />

【RocketMQ】CentOS8安装RocketMQ

RocketMQ的安装 检查jdk环境 RocketMQ是基于java开发的&#xff0c;安装之前请先查看是否有jdk环境 java -version如果没有请去官网&#xff08;https://www.oracle.com/java/technologies/downloads/#java8&#xff09;下载 下载RocketMQ安装包 前往官网&#xff08;http…

信道编码:Matlab RS编码、译码使用方法

Matlab RS编码、译码使用方法 1. 相关函数 在MATLAB中进行RS编码的过程可以使用rsenc()函数或者comm.RSEncoder()函数。 1.1 rsenc()函数使用方法 在MATLAB中帮助中可以看到有三种使用形式&#xff0c;分别为 code rsenc(msg,n,k) code rsenc(msg,n,k,genpoly) code rs…

Excel拼接sql语句,批量导入数据

如下示例图&#xff1a; sql语句&#xff1a;"insert into table (code, path, method) values ("&A2&"’,"&B2&","&C2&"’’);" "("&A2&","&B2&","&C2…

数据分析Lambda架构详解

大家好&#xff0c;今天我们来介绍一个用于亿级实时数据分析架构Lambda架构。 Lambda架构 Lambda架构&#xff08;Lambda Architecture&#xff09;是由Twitter工程师南森马茨&#xff08;Nathan Marz&#xff09;提出的大数据处理架构。这一架构的提出基于马茨在BackType和Tw…

形式化验证,A Theoretical Framework for SymbolicQuick Error Detection(四)

一、Article:文献出处&#xff08;方便再次搜索&#xff09; &#xff08;1&#xff09;作者 Florian Lonsing, Subhasish Mitra, and Clark Barrett&#xff08;Stanford University&#xff0c;斯坦福大学&#xff09; &#xff08;2&#xff09;文献题目 A Theoretical F…

目标检测之遮挡物体检测

一、遮挡的类别 类内遮挡&#xff0c;目标被同一类别的目标遮挡类间遮挡&#xff0c;目标被其它类别的目标遮挡 二、解决方法 数据标注 精调遮挡目标的GT边界框 数据增强 cutout&#xff1a;在训练时&#xff0c;随机mask目标&#xff0c;提升模型对遮挡的应对能力mosaic…

如何排查Trino常见报错问题

一、背景 必须前置知识&#xff1a;《Trino权威指南》第12章及周边涉及知识&#xff0c;基于392版本的使用层面入门书&#xff0c;引擎创始人亲自编写&#xff1a; https://www.wisdominterface.com/wp-content/uploads/2021/07/Trino-Oreilly-Guide.pdfhttps://www.wisdomin…

【Linux】基础IO——文件描述符/缓冲区/重定向/文件系统

文章目录 一、文件描述符二、缓冲区三、重定向的原理四、文件系统 (Linux Ext2)1 认识磁盘的结构CHSLBABlock 2 认识文件系统2.1 分区2.2 文件系统的结构2.3 剖析inode2.4 文件的操作 3 软硬链接3.1 软链接3.2 硬链接 &#x1f4dd; 个人主页 &#xff1a;超人不会飞)&#x1f…

低代码平台的价格范围及购买成本分析

Zoho Creator是一款强大而灵活的低代码应用程序开发平台&#xff0c;可帮助企业快速、高效地创建各种应用程序。但是&#xff0c;很多人可能会担心它的价格问题。在这篇文章中&#xff0c;我们将深入探讨Zoho Creator的定价策略和计划&#xff0c;以帮助您更好地理解其价格结构…

如何保证消息队列的高可用?

RabbitMQ的高可用性 RabbitMQ 是比较有代表性的&#xff0c;因为是基于主从&#xff08;非分布式&#xff09;做高可用性的&#xff0c;我们就以 RabbitMQ 为例子讲解第一种 MQ 的高可用性怎么实现。 RabbitMQ 有三种模式&#xff1a;单机模式、普通集群模式、镜像集群模式。…