python中的包可以理解为模块的集合。每个包也既可以为单包也可以有多个小包组成。

Python中的package定义很简单,其层次结构与目录的层次结构相同,但是每个package必须包含一个__init__.py的文件,__init__.py可以为空文件,只要它存在,就表明此目录应被作为一个package处理。

整个包的目录结构如下:

package/  ##包的目录

    __init__.py ##包含的__init__.py文件

    add_sub/    ##小包目录

      __init__.py ##子包含的__init__.py文件

      add.py ##add模块,模块中定义add()函数,用于求和

      sub.py ##sub模块

    mul_div/     ##小包目录

      __init__.py##子包含的__init__.py文件

      mul.py##mul模块

      div.py##div模块

至此,整个包就创建完成。

1)包引入:(test.py需要和包在同一级目录)

##test.py
from package.add_sub import add
print add.add(7,2)

2)*引入:(必须在所引用的目录下的__init__.py文件中添加所引用的模块代码)

如引入add_sub包的add.py和sub.py

__init__.py文件如下:

__all__ = ["add", "sub"]
##test.py
from package.add_sub import * ##就会按照__all__指定的进行引入
print add.add(7,2)

【python】浅谈包的更多相关文章

  1. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  2. Python 浅谈注释的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是难以下咽,几乎每个字符都要咨询他,用老师的话来说,这就是山炮编程员,所以此时的我意识到写一篇关于注释程序的重要性了,因此特地的写一篇文章帮助大家 ...

  3. Python 浅谈编程规范和软件开发目录规范的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...

  4. python浅谈编程规范和软件开发目录规范的重要性

    前言 我们这些初学者,目前要做的就是遵守代码规范,这是最基本的,而且每个团队的规范可能还不一样,以后工作了,尽可能和团队保持一致,目前初学者就按照官方的要求即可 新人进入一个企业,不会接触到核心的架构 ...

  5. Python浅谈requests三方库

    requests 三方库用于获取URL资源 1.GET请求访问一个页面 import requests r = requests.get('https://www.cnblogs.com/xqxacm ...

  6. Python - 浅谈Python的编译与反编译

    1 - Python编译过程涉及的文件 py 源代码文件,由python.exe解释,可在控制台下运行,可用文本编辑器进行编辑: pyc 源代码文件经过编译后生成的二进制文件,无法用文本编辑器进行编辑 ...

  7. python 浅谈小数据池和编码

    ⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...

  8. python 浅谈字典dict

    一.字典简介 字典(dict)是python中唯一的映射类型,他是以{ }括起来的键值对组成,在dict中的key是唯一的.在保存的时候,根据key来计算出一个内存地址.然后将key-value保存在 ...

  9. 【monkeyrunner】浅谈包名和activity名

    概念理解 包名:顾名思义,包名即为程序app的包名. activity名:每个界面都是一个activity. 两者关系:一个包有多个activity. Monkeyrunner中 device.sta ...

随机推荐

  1. spring学习笔记--quartz和定时任务执行

    前言: 最近要写一个定时任务, 用于同步数据. 以往这种涉及数据库操作的定时脚本, 都会采用python+crontab的方式来实现. 这次画风大转, 决定试试用spring+quartz来实现一下. ...

  2. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  3. 关于SSH整合中对于Hibernate的Session关闭的问题

    在web.xml的Struts2的配置上面加上 <filter> <filter-name>OpenSessionInViewFilter</filter-name> ...

  4. php遇见的错误(一)

    1.linux 执行脚本时报的错 Call to a member function on a non-object in    是没有实例化对象 解决方法 new类2.在给一个表增加一个新字段或者改 ...

  5. zookeeper的 目录加密

    import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.WatchedEvent;import org.apache.zo ...

  6. Android—对话框

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  7. Linux 命令ln

    在linux中可用ln命令创建一个文件的链接(软链接或者硬链接) 硬链接的使用: root@IdeaPad:~# ln 2.txt e.txt root@IdeaPad:~# ls 1.txt 2.t ...

  8. 什么是域名?什么网站名?什么是URL?

    域名,相信大家都不默认,也使用过无数次!比如: google.com.baidu.com.163.com等. 这时候,你可能要奇怪了,为什么小编没有在前面加上www? 因为正常情况下,不应该是www. ...

  9. ExtJS ComboBox的用法+代码

    Ext.onReady(function() { var store = Ext.create('Ext.data.Store', { autoLoad : true, fields : ['valu ...

  10. Android Studio + gradle多渠道打包

    通过工具栏的Build->Build Apk 好像只能打包第一个Module(eclipse里面是Project的概念),怎么多渠道打包呢?目前好像只能一个一个的打 首先在清单文件里设置个变量: ...