洗礼灵魂,修炼python(49)--巩固篇—包
包(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)--巩固篇—包的更多相关文章
- 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码
编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...
- 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块
feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...
- Python自动生产表情包
作为一个数据分析师,应该信奉一句话--"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!! 表情包不仅仅是一种符号,更是一种文化--是促进社交 ...
- python调用hanlp分词包手记
python调用hanlp分词包手记 Hanlp作为一款重要的分词工具,本月初的时候看到大快搜索发布了hanlp的1.7版本,新增了文本聚类.流水线分词等功能.关于hanlp1.7版本的新功能,后 ...
- Python一键转Jar包,Java调用Python新姿势!
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...
- 《python开发技术详解》|百度网盘免费下载|Python开发入门篇
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby 内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...
- 一文搞懂 Python 的模块和包,在实战中的最佳实践
最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...
- python 深入模块和包
模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...
- (Python )模块、包
本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...
- python socket发送魔法包网络唤醒开机.py
python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...
随机推荐
- 【Collection、泛型】
[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个 ...
- 【sping揭秘】17、@Around,@Introduction
package cn.cutter.start.bean; import org.apache.commons.logging.Log; import org.apache.commons.loggi ...
- python 输出“Hello, world”
目的:制作第一个项目,输出“Hello, world” 首先查看自己电脑上的python版本号,方法打开cmd输入python 如果提示:不是内部或外部命令,也不是可运行的程序或批处理文件.那么需要设 ...
- 21天打造分布式爬虫-requests库(二)
2.1.get请求 简单使用 import requests response = requests.get("https://www.baidu.com/") #text返回的是 ...
- ACM学习<3>
排序算法: 基本:冒泡,快速,选择,堆,插入,shell 多路并归: 1.冒泡排序: 思想:交换排序,通过相邻的交换来达到排序的目的. 流程: ...
- Spring Boot 解决方案 - 配置
习惯优于配置 Spring Boot 项目的重要思想就是"习惯优于配置",这也是为什么该项目诞生的原因,让开发者免于 Spring 生态中各种项目的配置.尽管如此,但项目中完全零配 ...
- docker push 出现:x509: certificate signed by unknown authority
今天,部署生产的程序的时候,出现一个问题:编译正常,但是,docker 把编译好的image 推送到生产环境上去的时候,出现:x509: certificate signed by unknown a ...
- Linux下rsync daemon模式下的错误汇总
一.前言:最近学习服务环境搭建,遇到了许多大大小小的问题,不过还好,经过我的一通努力终于都解决了,所以分享出来给自己留个纪念,同时也希望能帮助学习中的朋友. 二.环境:两台服务器环境相同 1 [roo ...
- PM2来部署nodejs服务器永久开启
pm2 日常使用 1. pm2 是什么? 日常开发中需要启动一个node项目,需要用npm run …,,如果终端被关掉,程序也就自动停止,有时候几个项目一起跑起来,好几个终端开着,个人不太喜欢, ...
- 来自于一个问题的回答对自己的反思 php怎么发送邮件?发送邮件插件PHPMailer
前言: 昨天用手机无意点了一下博问,看见了一个朋友问了一个关于php发邮件不能添加发件人名称的问题,试着看了一下代码,觉得自己发现了问题所在,谁知道只是一知半解没有真正发现问题所在,看来有一段时间没有 ...