包的基本使用

news2024/9/26 5:19:25

目录

一、看一个应用场景

二、基本介绍

三、快速入门 

四、注意事项和使用细节

1、导入包的基本语法

2、导入包的模块的指定函数、类、变量

3、__init__.py 通过__all__控制允许导入的模块

4、包可以有多个层级

5、快捷键 alt+enter/shift+alt+enter 可以快捷的导入

6、说明:使用哪一种导入方式,根据业务需求来确定即可


文档:5. 导入系统 — Python 3.12.4 文档

一、看一个应用场景

一个实际的项目,可能需要很多的模块,当模块文件越来越多,如果我们将所有的模块文件都放在同一个文件夹,就会带来很多问题,不利于管理,怎么办?--> 包

二、基本介绍

1、从结构上看,包就是一个文件夹,在该文件夹下包含一个__init__.py文件,该文件夹可以用于包含多个模块文件,从逻辑上看,包可以视为模块集合

2、包的结构形式示意图

3、__init__.py:控制包的导入操作

4、导入包&使用的基本语法

导入:import 包名.模块

使用:包名.模块.功能

三、快速入门 

快速入门案例

1)创建一个包(hsp_package)

2)在该包下,创建两个模块,module01.py和module02.py,分别编写hi()和ok()函数

3)编写文件 use_.py 导入该包下的两个模块,并调用 hi()和ok()

注意:在创建包的时候,要选择Python package 会自动生成__init __.py文件

 

# module01.py
def hi():
    print("module01,hi()")
# module02.py
def ok():
    print("module02,0k()")
# 导入包下的模块
import hsp_package.module01
import hsp_package.module02

# 使用导入的模块
hsp_package.module01.hi()
hsp_package.module02.ok()

四、注意事项和使用细节

1、导入包的基本语法

import 包名.模块

from 包名 import 模块

1)上面是两种导入包基本方式

2)import 包名.模块,在使用时,包名.模块.功能

3)from 包名 import 模块,在使用时,模块.功能,不需要带包名

# from 包名 import 模块,在使用时,模块.功能,不需要带包名
from hsp_package import module01
module01.hi()

2、导入包的模块的指定函数、类、变量

from 包名.模块 import 函数、类、变量

1)上面是导入包的模块的指定函数、类、变量

2)在使用时,直接调用功能

3)from 包名.模块 import * :表示导入包的模块的所有功能

# 导入包的模块的指定函数、类、变量
from hsp_package.module01 import hi
hi()

3、__init__.py 通过__all__控制允许导入的模块

1)在__init__.py中增加__all__=[允许导入的模块列表]

2)针对from 包 import * 方式生效,对 import xx 方式不生效

# __init__.py
# 控制包允许导入的模块
__all__=['module02']
from hsp_package import *

module02.ok()
# 引入限制了module01模块导入,因此不能使用
# module01.hi()
#  __all__=['module02']不能限制下面的导入形式
import hsp_package.module01
import hsp_package.module02

hsp_package.module02.ok()
hsp_package.module01.hi()

4、包可以有多个层级

1)包下还可以再创建包

2)在使用时,通过 . 来确定层级关系

# hsp_package/hsp_package2/module03.py
def cal(n1,n2):
    print(f"结果是->{n1+n2}")
# use_.py
# 包可以有多个层级
# 方式1
import hsp_package.hsp_package2.module03
# 使用
hsp_package.hsp_package2.module03.cal(10,30)
# use_.py
# 方式2
from hsp_package.hsp_package2 .module03 import cal
cal(60,90)
# 方式3
from hsp_package.hsp_package2 import module03
module03.cal(10,30)

5、快捷键 alt+enter/shift+alt+enter 可以快捷的导入

1)alt+enter,提示选择解决方案

2)shift+alt+enter,直接导入

6、说明:使用哪一种导入方式,根据业务需求来确定即可

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

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

相关文章

【计算机方向】五本计算机SCI,国人占比高,沾边就收!堪称“水刊之王”!

本期将为您带来五本计算机SCI 妥妥毕业神刊! KNOWLEDGE ENGINEERING REVIEW Evolving Systems ASIAN JOURNAL OF CONTROL EUROPEAN JOURNAL OF CONTROL INTERNATIONAL JOURNAL OF CONTROL AUTOMATION AND SYSTEMS 期刊名称&#xf…

电话外呼系统功能详解

外呼系统的功能特点 1、数据管理:外呼系统全面管理电销数据,数据报表应有尽有。 2、高频拨号:外呼系统具有多种拨号方式,专属的电销线路,不限制高频拨号。 3、一键拨号:外呼系统的一键拨号功能可以减少手动输入号码的繁琐过程。 4、筛选号…

深度学习中常见的四种数据标准化方法详细解读(StandardScaler、MinMaxScaler、RobustScaler、MaxAbsScaler)

目录 1. 前提摘要 2. 标准化方法 2.1 StandardScaler 2.1.1 计算方法 2.1.2 计算公式 2.1.3 适用场景 2.2 MinMaxScaler 2.2.1 计算方法 2.2.2 计算公式 2.2.3 适用场景 2.3 RobustScaler 2.3.1 计算方法 2.3.2 计算公式 2.3.3 适用场景 2.4 MaxAbsScaler 2.…

一篇文章让你用我的世界中的红石搞懂什么是ALU!

目录 1.一些在开始的约定 2.七大逻辑门电路 1、 与门 2、 或门 3、 非门 5、 或非门 6、 异或门 7、 同或门 3.半加器 4.全加器 5.ALU 1.一些在开始的约定 相同的概念:相同的概念:高电平低电平逻辑真逻辑假 开关的开 开关的关 灯的亮 灯…

聚鼎科技:装饰画怎么做盈利更快

在当今社会,艺术与商业的界限日渐模糊,装饰画作为一种独特的艺术形式,不仅美化了空间,同时也成为了一种盈利的途径。要在竞争激烈的市场中脱颖而出,实现盈利最大化,创作者及销售者必须采取一些明智的策略。…

19 注意力机制

目录 1.注意力机制从心理学的角度出发注意力机制非参注意力池化层Nadaraya-Watson 核回归:总结注意力汇聚:Nadaraya-Watson 核 代码实现非参数注意力汇聚(非参数注意力池化)注意力权重参数注意力汇聚(参数注意力池化)2.注意力分数如何将 key 和 value 拓展到更高的维度掩…

C#图片批量下载Demo

目录 效果 项目 代码 下载 效果 C#图片批量下载 项目 代码 using Aspose.Cells; using NLog; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.…

【zookeeper 第六篇章】分布式锁

一、分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。 二、zookeeper 分布式锁 1、客户端A创建临时顺序节点 demo。并在节点下创建 x_00000001。 2、客户端A判断是否自己是第一个节点,如果是就锁成功。 3、客户端B创建临时顺序节点 demo。 并…

文件操作及面试题

目录 文本文件和二进制文件 File概述 递归去查看某个目录下的所有文件与目录 InputStream概述 OutputStream 概述 文件操作的应用 面试题:递归文件路径并且删除指定文件 将一个指定路径的文件复制到另一个文件中去 1.文件 此处的文件有多种含义&#xff0c…

基于京东家电数据分析与价格预测研究【爬虫、Pyecharts、Flask、机器学习】《商品可换》

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍研究背景研究目的研究意义数据获取数据预处理数据分析与可视化大屏可视化基于Flask的系统框架集成价格预测模型每文一语 有需要本项目的代码或文档以及全部资源,或者部署…

去字节面试大模型算法岗,体验极佳!!

最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…

拳击与格斗杂志拳击与格斗杂志社拳击与格斗编辑部2024年第4期目录

搏击研究 拳击运动员灵敏素质训练策略研究 巫金君; 4-6 拳击运动员体能训练的方法与策略 彭天泽;任安萍;高刚; 7-9 高校武术教学与体能训练的结合研究 黄昊; 10-12《拳击与格斗》投稿:cn7kantougao163.com 拳击运动员核心力量训练研究 宋林董;张钰涵…

漏洞挖掘之再探某园区系统

漏洞挖掘之再探某园区系统 上次提到还有一处可能存在任意用户登录的点,最近没什么研究就写一下,顺便看看还有其他漏洞不 0x01 任意用户登录 1、漏洞分析 通过上次提到的搜索new UserBean()的思路,发现还有一处创建用户的方法 public voi…

FPGA设计之跨时钟域(CDC)设计篇(4)----多bit信号的跨时钟域(CDC)处理方法(手撕代码)

1、为什么多bit信号跨时钟域与单bit不同 ? 跨时钟域的处理可以分为两个大类:单Bit信号跨时钟域处理、多Bit信号跨时钟域处理。分类的原因是多bit信号的传递不光只有亚稳态这一个问题,还可能会因为多个信号之间由于工艺、PCB布局等因素导致的信号传输延时(skew)的存在,从而…

【机器学习第8章——集成学习】

机器学习第8章——集成学习 8.集成学习8.1个体与集成弱分类器之间的关系组合时,如何选择学习器怎么组合弱分类器boosting和Bagging 8.2 BoostingAdaBoost算法步骤训练过程 8.3 Bagging与随机森林随机采样(bootstrap)弱学习器结合策略方差与偏差算法流程随机森林 8.4…

2024华硕迷你主机选购指南:全系列覆盖

在选择迷你主机时,消费者往往面临多种选择,而华硕作为知名的电脑硬件制造商,提供了多款性能各异的迷你主机以满足不同用户的需求。在面对华硕迷你主机的选择时,不同的需求和偏好将带领我们走向不同的选择。对于游戏爱好者&#xf…

谈谈我用BaaS开发应用的一年感受

作为一个独立开发者,我一直在寻找高效、便捷的开发工具,直到遇见了MemFire Cloud。今天,我想和大家分享一下我用这款BaaS(Backend as a Service)开发应用一年的感受。 初识MemFire Cloud 最初接触MemFire Cloud&#…

大模型正在重蹈AI的覆辙?

[ 科技圈这两年什么概念和技术最火?——大模型。 当大模型刚出现的时候,可能谁都不会想到,有一天会如此爆火。 据不完全统计,2020年至2023年间,中国已经发布的参数在10亿规模以上的大模型,就超过80个。 …

8.3 修改mysqld_exporter源码 ,改造成类似blackbox的探针型,实现一对多探测

本节重点介绍 : 官方的mysqld_exporter问题 只能一对一不能像探针一样采集多个实例dsn需要配置环境变量或者配置文件解析 需求说明 改造成类似blackbox的探针型,实现一对多探测改造方案 修改源码prometheus配置文件传参和实例地址获取改造grafana大盘配置成可以切换…

【实用指南】如何选择最适合您的圆形连接器?

圆形连接器是一种电子连接器,其基本结构为圆柱形并且拥有圆形的配合面,这种设计使得它们在物理上区别于矩形或其他形状的连接器。它们通常用于设备之间的互连,属于互连分类中的第5类。 圆形连接器的主要组成部分包括: 插头&#…