首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础教程 包

10.1.4 包

为组织模块,可将其编组为包(package)。包其实就是另一种模块,但有趣的是它们可包含其他模块。模块存储在扩展名为.py的文件中,而包则是一个目录。要被Python视为包,目录必须包含文件__init__.py。如果像普通模块一样导入包,文件__init__.py的内容就将是包的内容。例如,如果有一个名为constants的包,而文件constants/__init__.py包含语句PI = 3.14,就可以像下面这样做:

import constants

print(constants.PI)

要将模块加入包中,只需将模块文件放在包目录中即可。你还可以在包中嵌套其他包。例如,要创建一个名为drawing的包,其中包含模块shapes和colors,需要创建如表10-1所示的文件和目

录(UNIX路径名)。

表10-1 一种简单的包布局

文件/目录 描 述

~/python/ PYTHONPATH中的目录

~/python/drawing/ 包目录(包drawing)

~/python/drawing/__init__.py 包代码(模块drawing)

~/python/drawing/colors.py 模块colors

~/python/drawing/shapes.py 模块shapes

完成这些准备工作后,下面的语句都是合法的:

from drawing import shapes # (3) 导入模块shapes

执行第1条语句后,便可使用目录drawing中文件__init__.py的内容,但不能使用模块shapes和colors的内容。执行第2条语句后,便可使用模块colors,但只能通过全限定名drawing.colors来使用。执行第3条语句后,便可使用简化名(即shapes)来使用模块shapes。请注意,这些语句只是示例,并不用像这里做的那样,先导入包再导入其中的模块。换而言之,完全可以只使用第2条语句,第3条语句亦如此。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190108G06HLG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券