Python实战从入门到精通第二十一讲——构建一个模块的层级包
想将你的代码组织成由很多分层模块构成的包。
封装成包是很简单的。在文件系统上组织你的代码,并确保每个目录都定义了一个__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实战从入门到精通第二十一讲——构建一个模块的层级包相关推荐
- Python实战从入门到精通第二十讲——调用父类方法
在子类中调用父类的某个已经被覆盖的方法. 为了调用父类(超类)的一个方法,可以使用 super() 函数,比如: class A:def spam(self):print('A.spam')class ...
- Python实战从入门到精通第十一讲——可接受任意数量参数的函数
构造一个可接受任意数量参数的函数. 为了能让一个函数接受任意数量的位置参数,可以使用一个*参数.例如: def avg(first, *rest):return (first + sum(rest)) ...
- Python实战从入门到精通第二讲——类
1. 类的创建 class Student:student_Count = 0def __init__(self, name, age):self.name = nameself.age = ageS ...
- Python实战从入门到精通第十讲——字符串与文本4之字符串搜索和替换
在字符串中搜索和匹配指定的文本模式 对于简单的字面模式,直接使用 str.replace() 方法即可,比如: >>> text = 'yeah, but no, but yeah, ...
- Python实战从入门到精通第七讲——字符串与文本1之字符串开头或结尾匹配
通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme等等. 检查字符串开头或结尾的一个简单方法是使用 str.startswith() 或者是 str.endswith( ...
- Python实战从入门到精通第十七讲——将单方法的类转换为函数
有一个除 __init__() 方法外只定义了一个方法的类.为了简化代码,你想将它转换成一个函数. 大多数情况下,可以使用闭包来将单个方法的类转换成函数. 举个例子,下面示例中的类允许使用者根据某个模 ...
- Python实战从入门到精通第八讲——字符串与文本2之合并拼接字符串
将几个小的字符串合并为一个大的字符串 合并的字符串是在一个序列或者 iterable 中,那么最快的方式就是使用 join() 方法.比如: >>> parts = ['Is', ' ...
- Python实战从入门到精通第六讲——数据结构与算法4之过滤序列元素
一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列 最简单的过滤序列元素的方法就是使用列表推导: >>> mylist = [1, 4, -5, 10, -7, 2, 3, ...
- Python实战从入门到精通第四讲——数据结构与算法2之实现一个优先级队列
实现一个优先级队列 import heapqclass PriorityQueue:def __init__(self):self._queue = []self._index = ()def pus ...
最新文章
- nginx 转发_除了转发和负载均衡,nginx又一次让他玩出新高度
- Python3 strip()去除字符串首尾指定信息
- 钉钉老版本下载3.31_钉钉旧版pc下载-钉钉旧版pc客户端下载-西西软件下载
- 如何保证 HBase 服务的高可用?看看这份 HBase 可用性分析与高可用实践吧!
- 【热点】WPA2协议遭破解,全世界wifi不安全了
- 龙芯处理器可以适配鸿蒙os吗,SylixOS龙芯1C适配总结
- android AIDL示例代码(mark下)
- linux服务占用的真实内存,为什么TOP看不出真实的内存占用情况?
- TranslateAnimation类:位置变化动画类
- 有哪些能识别英文的语音助手?
- js中setTimeout()方法使用和窗口加载
- win10系统文件夹黑色的背景色如何更改为白色?
- eclipse 快捷调整字体_eclipse字体大小设置快捷键
- ERP Qt实现之路 前言
- 计算机类专业哪些专业比较好,计算机类专业有哪些 哪个专业比较好
- Windows任务计划定时运行程序的配置方法
- 计算机学院杨洋,杨洋-地球科学与技术学院
- 还记得那些老国手吗? 07
- 用友财务帐套升级:T3升级U8
- c++面试常见题·Part 1 基础