Python基础(十)模块与包

news2025/1/15 23:21:54

目录

1. 简介

1.1 模块

1.2 包

2. 使用

2.1 创建

2.2 引用


1. 简介

1.1 模块

Python 中一个以 .py 结尾的文件就是一个模块,模块中定义了变量、函数等来实现一些类似的功能。Python 有很多自带的模块(标准库)和第三方模块,一个模块可以被其他模块引用,实现了代码的复用性。

1.2 包

包是存放模块的文件夹,包中包含 __init__.py 和其他模块,__init__.py 可为空也可定义属性和方法,在 Python3.3 之前的版本,一个文件夹中只有包含 __init__.py,其他程序才能从该文件夹引入相应的模块、函数等,之后的版本没有 __init__.py 也能正常导入,简单来说就是 Python3.3 之前的版本,__init__.py 是包的标识,是必须要有的,之后的版本可以没有。

2. 使用

2.1 创建

①创建包

使用 PyCharm 创建包,步骤为:①打开 PyCharm 选中项目 ②右击鼠标选中 New 选项,然后再选中 Python Package 后单击鼠标,此时弹出创建窗口,如下所示:

 我们填好名字后点击 OK 按钮即可。创建好后我们会发现 PyCharm 已经自动帮我们创建了空文件 __init__.py

②创建模块

使用 PyCharm 创建模块,步骤为:①选中刚刚创建的包  ②右击鼠标选中 New 选项,然后再选中 Python File 后单击鼠标,此时弹出创建窗口,如下所示:

 

我们填好名字后点击 OK 按钮即可。

我们创建包和模块的最终目录结构为:

package|- pg1|- - __init__.py|- - a.py|- - b.py|- pg2|- - __init__.py|- - c.py|- - d.py

a.py

def a():
    print('a')

b.py

def b():
    print('b')

c.py

def c():
    print('c')

d.py

def d():
    print('d')

2.2 引用

从包中引入模块有如下两种方式:

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

下面我们使用创建好的包和模块演示一下,如下所示:

# a 模块中引入 b 模块
import pg1.b
from pg1 import b

# a 模块中引入 c 模块
import pg2.c
from pg2 import c

# a 模块中引入 c 模块和 d 模块
import pg2.c,pg2.d
from pg2 import c,d

# a 模块中引入包 pg2 下的所有模块
from pg2 import *

# a 模块中引入 d 模块中函数 d()
from pg2.d import d
# 调用函数 d()
d()

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

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

相关文章

UMC产品UI升级说明

随着产品功能的逐渐完善,一款好的产品需要不断地打磨才能变得更完整、更稳定。所以,UMC作为数通畅联的核心产品,为了满足更多的需求,更好的视觉效果和体验感,一直都在不断地完善迭代。 本次升级主要是针对整体页面进行…

实现股票交易c接口​​​​​​​需要的注意事项有哪些?

实现股票交易c接口需要的注意事项有哪些?最近有很多朋友问小编这个问题,小编今天就说说! 在基类列表中包含接口名称 为每一个接口的成员提供实现 如果类从基类继承并实现了接口,基类列表中的基类名称必须放在所有接口之前。(一个…

PMAC的PVT功能实现解析笔记

从上图中我们可以得到如下信息: 速度截面是一个抛物线 P0P_0P0​、V0V_0V0​是上一次指定的,P1P_1P1​、V1V_1V1​是当前期望的,TA是当前期望的运动时间 A0A_0A0​是上一次计算的,A1A_1A1​是当前计算的,加加速度dA/…

使用 x-sheet 构建在线疫情高峰预测数据表

背景 最近,一位大数据专家通过百度“发烧”的搜索指数、公开的疫情感染人数等指标,计算出每个城市的“超额发烧搜索指数累计面积”,并且通过城市的搜索指数累计增长、累计速度,就可以算出现在每一个有疫情的城市疫情大概的达峰时…

MyBatis-Plus保姆级快速上手教程

为简化开发而生 Mybatis简化JDBC操作 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 1、特性 无侵入:只做增强不做改变,引入它不会对…

都28了,半路转行学编程还来得及吗?

很多新来的粉丝,经常会问到:“我现在xx岁了,学编程晚吗?",“程序员是不是吃青春饭啊,我都没有青春了,还能找到工作吗?”... 其实这类的问题,我以前都已经整理过文章&#xff0…

正点原子-Linux嵌入式开发学习-第二期05

第十三讲:按键实验 1:原理图分析,按键按下低电平进入,不按下高电平 对应的端口为:GPIO1_IO18 复制上一次工程,记得make clean清除上一次的文件 程序编写 1:新建key文件夹并新建bsp_key.c和bsp_…

Scala 高阶函数(二)

一、scala自带高阶函数 概述:可以接收一个函数的函数就是高阶函数,又称为算子 1。map: 将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集 val list1 List(1,2,3) val list2 list1.map(v>v*2) println(list2) //List…

[第十二届蓝桥杯/java/算法]D——相乘

🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法 💻博客主页:渡过晚枫渡过晚枫 👓系列专栏:[编程神域 C语言],[java/初学者],[蓝桥杯] &#x1f4d6…

C#获取计算机硬件的参数信息

2019年的时候用PowerBuilder写过一个计算机信息收集小程序,《计算机信息收集小程序》,当时是查注册表来实现的。 还可以通过对windows的API调用来做,这个稍微有点麻烦。 使用C#也可以通过三种方式来实现,分别是读取注册表、window…

import语句写烦了,怎么办?

每次写数据相关的代码时都会习惯性地先写一堆import语句,不管用得到用不到,先在文首默一遍再说。 或者: ❞虽说CtrlC和CtrlV也很方便,但是每次都要先“抄一次”也很烦。 那么有没有什么好的解决办法? Python有一个模…

《码出高效:java开发手册》六-数据结构与集合(一)

前言 本章主要是讲数据结构与集合,这章内容涉及到非常基础的知识,内容相对较多,首先从数组讲起,引申到集合框架,之后再到集合源码,最后介绍了高并发集合框架 集合 集合在代码中是collection,…

智牛股_第8章_Sentinel

智牛股_第8章_Sentinel 文章目录智牛股_第8章_Sentinel学习目标第1章 Sentinel集成使用1. 目标2. 步骤3. 实现3.1 生产环境最优配置方案3.2 用户服务集成3.3 熔断规则配置3.4 启动Sentinel监控台3.5 功能使用验证4. 总结第2章 用户注册功能1. 目标2. 步骤3. 实现3.1 用户注册流…

flstudio21版本有什么新功能及免费新插件

全能数字音乐工作站(DAW)编曲、剪辑、录音、混音,23余年的技术积淀和实力研发,FL Studio已经从电音领域破圈,成功蜕变为瞩目的全能DAW,把电脑变成全功能音乐工作室,接下来我们会为您一一展示 2…

Prometheus Operator实战—— Prometheus、Alertmanager、Grafana 监控RockectMq

1. RocketMQ 介绍 RocketMQ 是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。简单的来说,它由 Broker 服务器和客户端两部分组成,其中客户端一个是消息发布者客户端(Producer),它负责向…

硬盘恢复工具软件哪个好?分享这些硬盘数据恢复工具软件

您刚刚删除了一些非常重要的文件! 不要惊慌……您仍然有很大的机会可以以很少甚至免费的方式取回它们。 我们正在深入研究当今最好的硬盘恢复软件。 我们认为有一个明显的赢家,但我们提供了一些其他选项,以防您需要更高级的功能或使用不同…

四、网络层(三)IPv4

目录 3.1 IPv4地址 3.1.1分类编址 3.1.2子网划分与子网掩码 3.1.3无分类编址CIDR 3.1.4网络地址转换(NAT) 3.2 IPv4分组 3.2.1 IP分组(IP数据报)的格式 3.2.2 IP数据报分片 3.3 地址解析协议(ARP&am…

计讯物联二次供水水池泵站监测方案,从根本上保障居民饮用水安全

水质污染、设施故障率高、供水压力、安防缺失、故障反馈周期长等城市高楼大厦高层供水问题层出不穷,给二次供水安全带来隐患和威胁。为确保高层住宅安全稳定地进行二次供水,计讯物联利用新一代物联网技术、信息技术、云计算、大数据、数字孪生技术等先进…

ESP32中micro-ROS与ROS2通信(点亮esp32指示灯)

前言 micro-ROS,是基于ROS2进行优化的一套轻量级ROS系统,它提供了完全部署的ROS 2生态系统的大多数吸引人的工具和功能,并具有入式和低资源设备的卓越能力,可以运行在MCU硬件平台。 传统上,即使机器人包含许多ROS&am…

视频号直播间首次突破1万人

我是卢松松,点点上面的头像,欢迎关注我哦! 12月21直播结束后,看了下直播数据,竟然有100多人在线时长达到了1小时以上。看来直播间用户的粘性越来越强了,固定用户越来越多。个人做直播已经2年了&#xff0c…