Python的函数、模块、包和库

2023-10-26

本文比较了Python中容易混淆的几个概念,分清它们之间的包含关系,即 函数<模块<包<库

1、函数(function)

理解为数学上的函数即可。下载安装完python后,并不是所有的函数都能直接使用的,不在同一文件时需要使用import调用,比如import math.py。

2、模块(module)

一个完整的Python文件。在物理上的组织方式上为文件(比如math.py);在逻辑的组织方式上,这个文件为模块(比如math)。

调用方式如下(方法一):

>>>import math

也可以同时调用多个模块(方法二):

>>>import module_name1, module_name2, ……

同时也可以直接从模块中调取某一函数(方法三):

>>>from module_name import function_name

这里,直接调取某一函数与调取模块的方法在使用中的不同将在后面提到。

3、包(package)

包是一个由模块和子包组成的python应用程序的执行环境,具有文件夹的层次结构。如:

>>>AAA/
>>>   bbb.py
>>>   _int_.py
>>>   CCC/
>>>      c1.py
>>>      c2.py
>>>   DDD/
>>>      d1.py
>>>   ……

由上图可以看出包 AAA 既含有 *.py 的模块,也含有 CCC,DDD之类的子包。如调取函数func1(位于c1.py中),则可以通过如下代码:

>>>import AAA.CCC.c1
>>>AAA.CCC.c1.func1()

该方法调用函数func1时,需要指出其位置,即 AAA.CCC.c1.func1()。若想直接使用函数,则可通过如下方式:

>>>from AAA.CCC.c1 import func1
>>>func1()

这便是直接调用函数和调用模块的区别。

4、库(library)

库的概念是具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。


参考来源:http://www.cnblogs.com/Tavion/p/5221056.html

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

Python的函数、模块、包和库 的相关文章

  • Scrapy 在抓取一长串 url 时陷入困境

    我正在抓取一个大的 url 列表 1000 左右 并且在设定的时间后 爬虫程序会以 0 页 分钟的速度爬行 爬行时问题总是出现在同一个位置 url 列表是从 MySQL 数据库检索的 我对 python 和 scrapy 相当陌生 所以我不
  • Python RAD(桌面部署)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果这个问题回答了这么多次 请原谅我
  • 不能在jinja2宏中使用current_user?

    我使用 Flask Login 它提供了current user模板中的对象 我想编写一个宏来显示评论表单或登录链接 具体取决于用户是否登录 如果我直接在模板中使用此代码 它会起作用 if current user is authentic
  • PyQt4 信号和槽

    我正在使用 PyQt4 编写我的第一个 Python 应用程序 我有一个 MainWindow 和一个 Dialog 类 它是 MainWindow 类的一部分 self loginDialog LoginDialog 我使用插槽和信号 这
  • 预处理 csv 文件以与 tflearn 一起使用

    我的问题是关于在将 csv 文件输入神经网络之前对其进行预处理 我想使用 python 3 中的 tflearn 为著名的 iris 数据集构建一个深度神经网络 数据集 http archive ics uci edu ml machine
  • 如何解决错误 EGL 驱动程序消息(错误)eglQueryDeviceAttribEXT:使用 Selenium 和 Python 的错误属性

    我从 selenium 收到随机错误消息 即使它们都与我正在运行的确切 Web 驱动程序命令无关 据我所知 此错误不会中断程序 它只是添加不需要的警报 使我的打印件难以阅读 Chrome 版本 75 0 3770 100 官方版本 64 位
  • Python控制台默认十六进制显示

    我在 Python 控制台中做了很多工作 其中大部分都涉及地址 我更喜欢以十六进制形式查看地址 So if a 0xBADF00D 当我简单地输入Python gt a进入控制台查看其值 我更喜欢 python 回复0xBADF00D代替1
  • 使用 Twisted Python 的 UDP 客户端和服务器

    我想创建一个服务器和客户端 使用 Twisted 从网络发送和接收 UDP 数据包 我已经用 Python 中的套接字编写了此代码 但想利用 Twisted 的回调和线程功能 然而 我需要 Twisted 设计方面的帮助 我想接收多种类型的
  • 使用主宰器将实时数据发送给客户端

    我尝试使用 Flask 的主宰框架 以便按照 Flask 代码片段将实时信息发送到客户端浏览器http flask pocoo org snippets 80 http flask pocoo org snippets 80 当我尝试为我的
  • Pandas:向量化局部范围操作([i:i+2] 行的最大值和总和)

    我希望在数据帧中的每一行的局部范围内进行计算 同时避免速度缓慢for环形 例如 对于下面数据中的每一行 我想找到未来 3 天内 包括当天 的最高气温以及未来 3 天内的总降雨量 Day Temperature Rain 0 30 4 1 3
  • 如何使用子进程打开新的浏览器选项卡?

    我正在打开一个新的 IE 窗口 subprocess Popen r os environ PROGRAMFILES Internet Explorer IEXPLORE EXE Call URL 当 IE 关闭时这很好 但即使打开它也会生
  • 替换 pandas 数据框中的点

    我有一个如图所示的数据框 数字实际上是对象 正在做df treasury rate pd to numeric df treasury rate 可预见的炸弹 然而 做df replace np nan 似乎没有摆脱这个点 所以我很困惑 有
  • 使用 python 写入 aws lambda 中的 /tmp 目录

    Goal 我正在尝试将 zip 文件写入 python aws lambda 中的 tmp 文件夹 因此我可以在压缩之前提取操作 并将其放入 s3 存储桶中 Problem 操作系统 Errno30 只读文件系统 这段代码在我的计算机上进行
  • 将多个 isinstance 检查转换为结构模式匹配

    我想转换此现有代码以使用模式匹配 if isinstance x int pass elif isinstance x str x int x elif isinstance x float Decimal x round x else r
  • Celery 设计帮助:如何防止并发执行任务

    我对 Celery AMQP 相当陌生 正在尝试提出一个任务 队列 工作人员设计来满足以下要求 我有多种类型的 每用户 任务 例如 TaskA TaskB TaskC 这些 每用户 任务中的每一个都为系统中的一个特定用户读取 写入数据 因此
  • 如何在 Flask 中获取 POSTed JSON?

    我正在尝试使用 Flask 构建一个简单的 API 现在我想在其中读取一些 POSTed JSON 我使用 Postman Chrome 扩展进行 POST 我 POST 的 JSON 很简单 text lalala 我尝试使用以下方法读取
  • Tensorboard——High-level节点的计算时间与其子节点计算时间的总和不同

    继tutorial https www tensorflow org programmers guide graph viz在 TensorFlow 上 我试图使用张量板来理解运行时统计数据 我发现代表名称范围的高级节点的计算时间不等于其子
  • 为什么 Python exec 中的模块级变量无法访问?

    我正在尝试使用Pythonexec in a project https github com arjungmenon pypage执行嵌入的Python代码 我遇到的问题是在模块级 in an exec声明是难以接近的来自同一模块中定义的
  • 透视包含字符串的 Pandas Dataframe - “没有要聚合的数字类型”错误

    关于此错误有很多问题 但环顾四周后 我仍然无法找到 解决解决方案 我正在尝试用字符串旋转数据框 以使一些行数据变成列 但到目前为止还没有成功 我的 df 的形状
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入

随机推荐

  • Rust- File

    In Rust file I O is handled primarily through the std fs and std io modules The std fs module contains several functions
  • win10此计算机无法创建家庭组,win10专业版无法创建家庭组网络该怎么办?

    在局域网中 我们可以创建一个家庭组 方便几台电脑之间互相发送文件 但是使用Win10系统的用户反应无法创建家庭组的问题 该怎么办呢 遇到这样的情况 由于系统服务未开启 系统网络设置不正确导致 我们可以通过以下方法进行修复 步骤 1 按下 W
  • TiDB关键字、保留字和注释语法

    关键字和保留字 关键字在 SQL 中有特殊的意义 例如 SELECT UPDATE DELETE 在作为表名跟函数名的时候 需要特殊对待 例如作为表名 保留字需要被反引号包住 CREATE TABLE select a INT ERROR
  • 微信公众号配置token

    1 在微信公众平台开发 基本设置页面 点击 修改配置 按钮 填写服务器地址 URL Token和EncodingAESKey token可以任意填写 对应验证的token URL对应是可以访问到 验证token的方法 的链接 2 代码中进行
  • F1-score与 F值(F-Measure)

    F1 score 综合评估分类模型 取值0 1之间 F1 score综合考虑Precision和Recall 是P和R加权调和平均 当精确率和召回率都高时 F1 score也会高 化简得到 如果类别为多类 则F1 score 求均值 或进行
  • Dynamics CRM 2015 Update 0.1 - Error.ActionFailed Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAc

    安装最新的Update 0 1 CRM2015 Server KB3010990 ENU amd64 之后 发生数据库无法更新的问题 重新访问CRM之后可以看到服务器已经被更新到7 0 1但数据库仍然停留在7 0 0 错误日志如下 Micr
  • Python

    目录 系列目录 原项目地址 8 常用数据结构之列表 列表的运算符 补充 切片及索引介绍 索引的一般方式 切片操作的基本表达式 object start end step 切片操作的 详细切法 列表的比较运算 列表元素的遍历 方法一 方法二
  • 不开心的小朋友

    华为23年7月od笔试题第三题 不开心的小朋友 题目已忘记 但大题意思是 输入一个数代表摇摇车的数量 在下一行输入一串数字 用空格隔开 每个数字代表不同的小朋友的编号 小朋友的编号不能重复 每个小朋友只有一个编号 小朋友排队坐摇摇车 如果小
  • 大管家前端线上笔试

    1 盒子模型 盒子模型 我们把网页中的各个部分都看成一个盒子 盒子由外到内包括外边距 margin 边框 border 内边距 padding 内容 content 两种盒子模型 标准盒子模型 默认盒子模型 width boder padd
  • 【Python技巧】正则表达式:(?:)匹配多个字符串之一;(非获取匹配)

    当需要匹配多个字符串其中之一时 如 匹配 你 我 她 他 四个字符串之一时 使用非元组捕获语 exp 例子 import re content2 我市政协 我爱协商 新平台建设工作的加强与落实 搭建 协商在民主 新模式 推进 协商朋友圈 协
  • 【第3篇】GooLeNet——Inception结构的开创者

    文章目录 摘要 1 引言 2 近期工作 3 动机和高层思考 4 架构细节 5 GoogLeNet 6 训练方法 7 ILSVRC 2014分类挑战赛设置和结果 8 ILSVRC 2014检测挑战赛设置和结果 9 总结 摘要 我们在Image
  • 5.Linux删除文件和目录

    在 Linux 中 可以使用 rm 命令来删除文件和目录 文件夹 下面是一些常见的删除操作及其示例 删除单个文件 使用 rm 命令加上要删除的文件名称即可 rm filename 删除名为 filename 的文件 删除多个文件 可以同时删
  • Maven中DependencyManagement和Dependencies区别

    Maven使用DependencyManagement元素来管理依赖版本号 通常会在一个组织或者项目的最顶层的父POM中看到DependencyManagement元素 使用pom xml文件中的DependencyManagement元素
  • python向列表添加元素的三种方法append()、extend() 和 insert()

    向列表增加元素的三种方法 只能处理list 1 append append 方法是将参数作为一个元素增加到列表的末尾 只接受一个参数 参数可以是任何数据类型 被追加的元素在List中保持着原结构类型 a 1 2 3 a append 4 b
  • c++ 读写标记

    r 打开只读文件 该文件必须存在 r 打开可读写的文件 该文件必须存在 rb 读写打开一个二进制文件 只允许读写数据 rt 读写打开一个文本文件 允许读和写 w 打开只写文件 若文件存在则文件长度清为0 即该文件内容会消失 若文件不存在则建
  • 车辆信息检测数据集收集汇总

    车辆信息检测数据集收集汇总 1 UA DETRAC 2 车牌数据集 3 自动驾驶数据集 4 车辆类型数据集 5 综合汽车 CompCars 数据集 6 汽车数据集 检测用 7 OpenData V11 0 车辆重识别数据集 VRID 8 S
  • 全国市场监管公共服务平台返回体相关加密

    链接 aHR0cDovL2p6c2MubW9odXJkLmdvdi5jbi9kYXRhL2NvbXBhbnk 抓包 95780ba0943730051dccb5fe3918f9fe1b6f2130681f99d5620c5497aa480f
  • Maven工程控制台输出中文乱码

    在pom xml的properties标签下加入如下元素即可解决
  • kubectl 插件推荐: kubectl-watch

    作者 imuxin 灵雀云后端工程师 kubectl watch 一个可以监听 kubernetes 资源的变更信息的 kubectl 插件 其中变更的内容通过使用 delta 1 或 difftastic 2 工具提供漂亮的终端界面展示
  • Python的函数、模块、包和库

    本文比较了Python中容易混淆的几个概念 分清它们之间的包含关系 即 函数 lt 模块 lt 包 lt 库 1 函数 function 理解为数学上的函数即可 下载安装完python后 并不是所有的函数都能直接使用的 不在同一文件时需要使