Python-模块与包(通俗易懂)

2023-11-19

1、模块

1)模块的理解

模块就是一个包含了Python定义和声明的".py"文件
python导入模块默认是从当前目录当前文件查找模块
注意:自定义的python文件的文件名一定不要和已有模块名冲突
在这里插入图片描述
定义一个hello.py文件:
在这里插入图片描述
我们可以在同一个目录下导入使用这个模块:
在这里插入图片描述
执行结果如下:
在这里插入图片描述
导入模块实际就是加载并执行一遍这个模块的内容

也可以只导入一部分信息:

在这里插入图片描述
在这里插入图片描述

2)模块的其他信息

import sys
print(sys.path) #模块的查询路径

import hello
print(dir(hello))   #查看hello模块可以使用的变量和函数

print(hello.__doc__) # 查看模块的说明文档
print(hello.__file__) # 显示模块的绝对路径
print(hello.__name__) # 显示模块名称

执行结果如下:
在这里插入图片描述

3)name的特殊用法

运行这个模块:
在这里插入图片描述
结果如下:
在这里插入图片描述

当在模块内部执行__name__的值为__main__。
当模块被导入时,__name__的值为模块名。

在这里插入图片描述

4)all的用法

在模块中加入__all__
在这里插入图片描述
执行此代码会报错:
在这里插入图片描述

__all__当用户使用from module import * 时,需要导入的内容

2、包

1)包是什么

Python通过模块来组织代码,模块就是一个py文件,是通过“包”来加以组织的,而“包”则是一个包含了__init__.py的文件夹。
代码、模块和包三者的关系就是:“包”包含模块且至少包含了一个__init__.py,模块包含代码。
简单来说,包就是文件夹,并且该文件夹下必须有__init__.py文件,该文件的内容可以为空,__init__.py用于标识当前文件夹是一个包。
在这里插入图片描述

2)导入包的方式

创建一个包sdk,创建两个模块,两个模块类似,主要看效果:
在这里插入图片描述
__init__.py中输入内容:
在这里插入图片描述
导入包并执行:
在这里插入图片描述
输出如下:
在这里插入图片描述
导入包的实质就是在执行__init__.py的内容

1)方法一

从包里导入:
在这里插入图片描述

2)方法二

编辑__init__.py内容
在这里插入图片描述
这样就能直接导入:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python-模块与包(通俗易懂) 的相关文章

  • 为什么 Python 在导入脚本时只保存脚本的字节码?

    既然执行Python字节码会比运行原始源代码更快 因为Python不需要重新编译 为什么Python在导入脚本时只保存编译后的字节码呢 为每个执行的脚本保存 pyc 文件不是更好吗 无论如何 Python 解释器的启动时间都需要时间 即使您
  • 在 Python 2.7 中出现“ImportError:无法导入名称 HTTPSConnection”错误

    我正在尝试在 AWS ElasticBeanstalk 中部署 django 当我按照所示步骤操作时here http docs aws amazon com elasticbeanstalk latest dg create deploy
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • scipy.optimize on pandas dataframe

    我试图搜索它 但结果很差 有人可以向我解释一下如何在 Pandas DataFrame 上执行 optimize minimize 以便最小化 DataFrame 中的类别和结果列之间的错误 考虑这个例子 import pandas as
  • Python 转换矩阵

    我有一个如下所示的列表 2 1 3 1 2 3 1 2 2 2 我想要的是一个转换矩阵 它向我显示如下序列 1 后跟 1 的频率是多少 1 后面跟着 2 的频率是多少 1 后跟 3 的频率是多少 2 后跟 1 的频率是多少 2 后跟 2 的
  • Keras model.predict 函数给出输入形状错误

    我已经在 Tensorflow 中实现了通用句子编码器 现在我正在尝试预测句子的类概率 我也将字符串转换为数组 Code if model model type universal classifier basic class probs
  • 来自 pandas 数据帧的烛台图,用日期替换索引

    此代码给出了带有移动平均线的烛台图 但 x 轴位于索引中 我需要 x 轴位于日期中 需要做什么改变 import numpy as np import pandas as pd import matplotlib pyplot as plt
  • Matplotlib 图例,跨列添加项目而不是向下添加项目

    对于下面的简单绘图 有没有办法让 matplotlib 填充图例 以便它从左到右填充行 而不是第一列然后第二列 gt gt gt from pylab import gt gt gt x arange 2 pi 2 pi 0 1 gt gt
  • 查找正在导入哪些 python 模块

    从应用程序中使用的特定包中查找所有 python 模块的简单方法是什么 sys modules是将模块名称映射到模块的字典 您可以检查其键以查看导入的模块 See http docs python org library sys html
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • 正在使用 PIL 保存损坏的图像

    我遇到一个问题 操作图像像素导致保存损坏的图像 因此 我使用 PIL 打开图像 然后将其转换为 NumPy 数组 image Image open myimage png np image np asarray image 然后 我转置图像
  • 使用 subprocess.Popen() 或 subprocess.check_call() 时程序卡住

    我想从 python 运行一个程序并找到它的内存使用情况 为此 我正在使用 l a out lt in txt gt out txt p subprocess Popen l shell False stdout subprocess PI
  • 更改 Matplotlib 投影轴的背景颜色

    我正在尝试使用 Cartopy 创建一个图形 该图形需要在未投影的轴上绘制投影轴 这是一个尽可能简单的代码版本 它将轴上的内容替换为背景颜色 import matplotlib pyplot as plt import cartopy cr
  • 是否可以使用 Anaconda 包作为 Google Cloud Functions 的依赖项?

    我正在使用 Python 运行时编写 Google Cloud Function 我需要包含一些无法使用的依赖项pip 如文档中所述here https cloud google com functions docs writing spe
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to

随机推荐

  • UNITY一些关于旋转的问题

    实现平滑的旋转 旋转的目的是为了朝向目标物体 untiy中的旋转rotation是一个四元数 在代码里面我们可以用Quaternion 来记录一个人物角色的最初的旋转角度 注意 这个要在awake里赋值 目的是取得该值 为了实现平滑的旋转
  • 关于powershell中错误:无法将“XXX”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案

    在利用ffmpeg进行格式转换时报错 无法将 ffmpeg 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 发现是改动了ffmpeg所在根文件夹名字 导致path环境变量找不到ffmpeg程序 改动环境变量就正常了 快速打开环境变
  • protobuf对象 转为Json串写入elastic search遇到的问题总结

    背景 从kafka中消费数据后拿到的是protobuf序列化后的字节数组 转化为Java中的proto对象后 需要将这些protocol对象继续处理成Json串写入elasticsearch 各种问题 Json工具选择 刚开始尝试使用fas
  • Failed to convert property value of type 'java.lang.String' to required type 'int' for property

    junit Spring 测试Service org springframework beans TypeMismatchException Failed to convert property value of type java lan
  • Django ORM中常用字段类型与参数

    ORM中常用字段类型与参数 在ORM中一个模型类对应的是数据库中的一张表 对象对应的是数据库中的记录 属性则对应的是字段 此篇为章主要整理的是常用的字段类型和对应的参数 字段类型 1 自增长字段 自增长 id models AutoFiel
  • 详述Java三种注释方法及实例说明

    1 注释方法汇总 实例说明在第二部分 1 1单行注释 1 符号 2 注释范围 从符号 开始 到本行结束 3 快捷键 Ctrl Ctrl 和 的组合 选中要注释的内容 按 Ctrl 便可 同时单行注释多行内容 若想多个同个取消 则选中 以及单
  • Linux的静态库和动态库

    库从本质上来说是一种可执行代码的二进制格式 可以被载入内存中执行 库分静态库和动态库两种 静态库和动态库的区别 1 静态函数库 这类库的名字一般是libxxx a 利用静态函数库编译成的文件比较大 因为整个 函数库的所有数据都会被整合进目标
  • J-Flash中添加MDK制作的QSPI Flash下载算法方法

    在JLINK的电脑端驱动V6 84a上测试的 1 MDK的QSPI Flash下载算法制作方法和制作好的算法看教程第80章和配套的例子即可http www armbbs cn forum php mod viewthread tid 869
  • 蹭热点:白的不能再白的Github Pages部署教程

    最近最热点的新闻无疑是微软收购 世界上最大的同性交友网站 Github了 作为一个程序单身狗 我也来蹭蹭热点 正好花了半天时间学了一下怎么构建Github Pages 没看错 我也是现学的 然后才发现原来Github还有这么NB好用的功能
  • Linux(一): 系统操作命令与组成

    目录 命令格式 一 常用操作以及概念 快捷键 求助 1 help 2 man 3 info 4 doc 关机 1 who 2 sync 3 shutdown PATH sudo 包管理工具 1 发行版 VIM 三个模式 1 离开或保存 GN
  • python3.8动态人脸识别

    一 准备依赖库 pip install dlib pip python opencv 二 代码实现 coding utf 8 从视屏中识别人脸 并实时标出面部特征点 import dlib 人脸识别的库dlib import cv2 图像处
  • 保姆级使用PyTorch训练与评估自己的ConvNeXt网络教程

    文章目录 前言 0 环境搭建 快速开始 1 数据集制作 1 1 标签文件制作 1 2 数据集划分 1 3 数据集信息文件制作 2 修改参数文件 3 训练 4 评估 5 其他教程 前言 项目地址 https github com Fafa D
  • 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)

    文章目录 一 CLIP 1 1 简介 1 1 1 前言 1 1 2 模型结构 1 1 3 模型效果 1 1 3 1 对自然分布偏移的鲁棒性 1 1 3 2 StyleCLIP 1 1 3 3 CLIPDraw 1 1 3 4 zero sh
  • 数据分析实战(数据采集与整理)

    1 数据的可分析度 我们需要判断这个数据的分析是否是有价值的 在可分析度方面 需要一些判断的维度 主要是企业数据量 数据复杂度还有数据颗粒度 数据量比较大的 复杂度比较高的 颗粒度比较细的数据 就有比较高的分析和利用价值 衡量数据复杂度我们
  • C移植到Java中,byte[]与其他数据类型的转换

    最近在把C代码移植到Java Android 中 C中一般的数据都会使用byte unsigned char 来存储 且位操作特别频繁 我要把这些数据转换成在Java存储 或把byte转换成本语言的其他类型 掉进不少坑 这里 总结下这段时间
  • < 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >

    文章目录 SCUI Admin 中后台前端解决方案 Vue NetCore 前后端分离的快速发开框架 next admin 适配移动端 pc的后台模板 django vue admin pro 快速开发平台 Admin NET 通用管理平台
  • copy to clipboard

    export function copyToClipboard textToCopy string if navigator clipboard window isSecureContext secure return navigator
  • ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象

    使用Ajax更新ASP Net MVC项目中的报表对象 Ajax技术显著加快了Web应用程序的速度 另外 视觉效果方面也有提升 大家都同意 每次点击按钮时整个页面都会被刷新这一点不太友好 如果你的网速不是很快 那么这个过程会很烦人 因为所有
  • 使用MicroPython开发ESP32(02):库介绍

    文章目录 目的 库基础说明 库列表 Python基础库 嵌入式设备相关库 ESP32特有库 总结 目的 对于Python来说丰富的库是其使用快速简易的关键 这点对于MicroPython也一样 这篇文章就对MicroPython的库做个罗列
  • Python-模块与包(通俗易懂)

    1 模块 1 模块的理解 模块就是一个包含了Python定义和声明的 py 文件 python导入模块默认是从当前目录当前文件查找模块 注意 自定义的python文件的文件名一定不要和已有模块名冲突 定义一个hello py文件 我们可以在