想将你的代码组织成由很多分层模块构成的包。

封装成包是很简单的。在文件系统上组织你的代码,并确保每个目录都定义了一个__init__.py文件。 例如:

graphics/__init__.pyprimitive/__init__.pyline.pyfill.pytext.pyformats/__init__.pypng.pyjpg.py

一旦你做到了这一点,你应该能够执行各种import语句,如下:

import graphics.primitive.line
from graphics.primitive import line
import graphics.formats.jpg as jpg

定义模块的层次结构就像在文件系统上建立目录结构一样容易。 文件__init__.py的目的是要包含不同运行级别的包的可选的初始化代码。 举个例子,如果你执行了语句import graphics, 文件graphics/__init__.py将被导入,建立graphics命名空间的内容。像import graphics.format.jpg这样导入,文件graphics/__init__.py和文件graphics/formats/__init__.py将在文件graphics/formats/jpg.py导入之前导入。

绝大部分时候让__init__.py空着就好。但是有些情况下可能包含代码。 举个例子,__init__.py能够用来自动加载子模块:

# graphics/formats/__init__.py
from . import jpg
from . import png

像这样一个文件,用户可以仅仅通过import grahpics.formats来代替import graphics.formats.jpg以及import graphics.formats.png。

Python实战从入门到精通第二十一讲——构建一个模块的层级包相关推荐

  1. Python实战从入门到精通第二十讲——调用父类方法

    在子类中调用父类的某个已经被覆盖的方法. 为了调用父类(超类)的一个方法,可以使用 super() 函数,比如: class A:def spam(self):print('A.spam')class ...

  2. Python实战从入门到精通第十一讲——可接受任意数量参数的函数

    构造一个可接受任意数量参数的函数. 为了能让一个函数接受任意数量的位置参数,可以使用一个*参数.例如: def avg(first, *rest):return (first + sum(rest)) ...

  3. Python实战从入门到精通第二讲——类

    1. 类的创建 class Student:student_Count = 0def __init__(self, name, age):self.name = nameself.age = ageS ...

  4. Python实战从入门到精通第十讲——字符串与文本4之字符串搜索和替换

    在字符串中搜索和匹配指定的文本模式 对于简单的字面模式,直接使用 str.replace() 方法即可,比如: >>> text = 'yeah, but no, but yeah, ...

  5. Python实战从入门到精通第七讲——字符串与文本1之字符串开头或结尾匹配

    通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme等等. 检查字符串开头或结尾的一个简单方法是使用 str.startswith() 或者是 str.endswith( ...

  6. Python实战从入门到精通第十七讲——将单方法的类转换为函数

    有一个除 __init__() 方法外只定义了一个方法的类.为了简化代码,你想将它转换成一个函数. 大多数情况下,可以使用闭包来将单个方法的类转换成函数. 举个例子,下面示例中的类允许使用者根据某个模 ...

  7. Python实战从入门到精通第八讲——字符串与文本2之合并拼接字符串

    将几个小的字符串合并为一个大的字符串 合并的字符串是在一个序列或者 iterable 中,那么最快的方式就是使用 join() 方法.比如: >>> parts = ['Is', ' ...

  8. Python实战从入门到精通第六讲——数据结构与算法4之过滤序列元素

    一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列 最简单的过滤序列元素的方法就是使用列表推导: >>> mylist = [1, 4, -5, 10, -7, 2, 3, ...

  9. Python实战从入门到精通第四讲——数据结构与算法2之实现一个优先级队列

    实现一个优先级队列 import heapqclass PriorityQueue:def __init__(self):self._queue = []self._index = ()def pus ...

最新文章

  1. nginx 转发_除了转发和负载均衡,nginx又一次让他玩出新高度
  2. Python3 strip()去除字符串首尾指定信息
  3. 钉钉老版本下载3.31_钉钉旧版pc下载-钉钉旧版pc客户端下载-西西软件下载
  4. 如何保证 HBase 服务的高可用?看看这份 HBase 可用性分析与高可用实践吧!
  5. 【热点】WPA2协议遭破解,全世界wifi不安全了
  6. 龙芯处理器可以适配鸿蒙os吗,SylixOS龙芯1C适配总结
  7. android AIDL示例代码(mark下)
  8. linux服务占用的真实内存,为什么TOP看不出真实的内存占用情况?
  9. TranslateAnimation类:位置变化动画类
  10. 有哪些能识别英文的语音助手?
  11. js中setTimeout()方法使用和窗口加载
  12. win10系统文件夹黑色的背景色如何更改为白色?
  13. eclipse 快捷调整字体_eclipse字体大小设置快捷键
  14. ERP Qt实现之路 前言
  15. 计算机类专业哪些专业比较好,计算机类专业有哪些 哪个专业比较好
  16. Windows任务计划定时运行程序的配置方法
  17. 计算机学院杨洋,杨洋-地球科学与技术学院
  18. 还记得那些老国手吗? 07
  19. 用友财务帐套升级:T3升级U8
  20. c++面试常见题·Part 1 基础

热门文章

  1. 超24亿美元的BTC、ETH、XRP等加密货币在衍生品交易所被清算
  2. SAP License:HP面试手记
  3. 银行数据部门如何管理跟使用数据?来围观星球中老师的答案
  4. 天池实验室-Task04-Python数据分析:从0完成一个数据分析实战
  5. spring的一些概念及优点
  6. JavaScript之函数
  7. 数据的降维之特征选择及主成分分析
  8. 数字与字符串相关问题
  9. SQLServer 批量插入数据的两种方法
  10. Maven 的一个问题