包(Package)

这个其实前面也说过的,不过同模块一样,没有具体的解析

1.什么是包

在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,那么此文件夹(目录)即为包,文件夹(目录)名即为包名,但包有一个特征与其他普通文件夹区分,包目录下必须有一个名为__init__.py的文件,__init__.py的内容可以为空,主要是为了避免python将文件夹名当作其他文件夹一样的处理为普通的字符串。一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,表示导入全部定义过的模块。

2.有哪些包

查看包的命令和查看模块的命令是一样的,不再赘述

3.作用

用于将一组模块归类到同一个目录中,整理某些功能相近的文件组织在一起,在实际的开发中,可能因为代码的不断增加,我们需要维护代码的可利用和可原理性,需要将带有不同功能的或者相同功能的模块归类在一起,这其实和模块一个道理,模块管理的是代码,而包管理的是模块

4.怎么自定义包

1)手动建一个文件夹

2)在文件夹下建立__init__.py文件

3)再在同一文件夹下建立你自己的模块

然后就可以导入使用了

5.怎么使用包

使用包的方式跟模块也类似,使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

例:使用上面例子的已经建好的自定义包test里的方法:

使用from XX import XX 方法也一样,注意导入包和导入模块细微的区别就行,比如像这样就会报错:

使用from XX import  XX时, 后面只能跟一个方法,不能跟模块名.方法,必须这样才行:

注意:导入操作时,默认只在父路径下(即包的路径)的模块内搜索导入。

如果需要导入一个其他包的模块,则需要先导入sys模块,添加一个搜索路径即可:

例:

其中,sys.path就是python默认的模块搜索路径,注意导入的包根目录下必须带有__init__.py文件

6.包和类,模块的区别

  • 类:类的概念在许多语言中出现,很容易理解。它将数据和操作进行封装,以便将来的复用
  • 模块:在Python可理解为对应于一个py文件。在创建了一个py文件后,定义了某些函数和变量
  • 包:包含有模块和一个特殊的__init__.py文件的文件夹或者目录

在某些特定情况下,可以把包看作一个模块,把模块看作一个包

洗礼灵魂,修炼python(49)--巩固篇—包的更多相关文章

  1. 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码

    编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...

  2. 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块

    feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...

  3. Python自动生产表情包

    作为一个数据分析师,应该信奉一句话--"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!! 表情包不仅仅是一种符号,更是一种文化--是促进社交 ...

  4. python调用hanlp分词包手记

    python调用hanlp分词包手记   Hanlp作为一款重要的分词工具,本月初的时候看到大快搜索发布了hanlp的1.7版本,新增了文本聚类.流水线分词等功能.关于hanlp1.7版本的新功能,后 ...

  5. Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...

  6. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  7. 一文搞懂 Python 的模块和包,在实战中的最佳实践

    最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...

  8. python 深入模块和包

    模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...

  9. (Python )模块、包

    本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...

  10. python socket发送魔法包网络唤醒开机.py

    python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...

随机推荐

  1. linux系统添加swap(虚拟内存)分区

    ​ 在实际的生产环境中,实际的物理内存我们经常会觉得不够用,增加物理内存的成本又比较高,一种折中方案就出来了,使用硬盘的一部分空间来做Swap(windows 下叫虚拟内存),将系统内非活动内存换页到 ...

  2. 和嗲妹妹面试python,是种什么体验?

    这次给大家讲讲我2年前去爱奇艺面试高级运维开发岗位的经历,希望对大家带来一些帮助. 公众号「Python专栏」后台回复:自动化运维平台,获取整套自动化运维平台的源代码 聊骚阶段 嗲妹妹:你好,我是爱奇 ...

  3. Python常用模块time & datetime &random 模块

    时间模块前言 在Python中,与时间处理有关的模块就包括:time,datetime 一.在Python中,通常有这几种方式来表示时间: 时间戳 格式化的时间字符串 元组(struct_time)共 ...

  4. 【2019北京集训3】逻辑 树剖+2-sat

    题目大意:有一颗有$m$个叶子节点的二叉树. 对于叶子节点$i$,$x[i]=(a[i]\ xor\ V_{p[i]})or(b[i]\ xor\ V_{q[i]})$ 对于非叶子节点$i$,$x[i ...

  5. golang中GOPATH的简单理解

    1.为什么要配置GOPATH 配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg sr ...

  6. 分布式协调服务ZooKeeper的典型应用

    Zookeeper典型应用 参考官方文档: http://zookeeper.apache.org/doc/current/recipes.html Out of the Box Applicatio ...

  7. 122. 买卖股票的最佳时机 II-leetcode

    题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必 ...

  8. Hystrix参数配置

    1.Hystrix参数配置文档  2.Hystrix参数配置示例 import org.springframework.beans.factory.annotation.Autowired; impo ...

  9. FC游戏 《三国志2-霸王的大陆》攻略

    <三国志2-霸王的大陆>是日本南梦宫公司研发的一款历史战略模拟游戏,于1992年06月10日在红白机平台上发行. 在开始游戏选择君主时(一定要在君主未出现前的画面时进行第二步),按住1P的 ...

  10. [牛客小白月赛4 H] 相邻的糖果

    Description 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果. 对你的要求如下: ·任何m个相邻的盒子内糖果数 ...