广州Python,Java小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://www.chipscoco.com/?cate=6
18.3.1 理解package
package的中文意思为“包裹”,“包装盒”。 Python中的package,即通常所说的包结构,是一种包裹模块文件的目录结构。通俗地来进行解释,package是一个模块仓库。为理解包结构,我们先来看下18.1节中的程序目录结构:
D:\--── Python3-Learning├──chapter18│ ├── main.py│ └── utils├── calc_max.py
上文目录结构中的utils就是一个package。同样地,chapter18也是一个package。为什么Python需要引入package的概念?引入package是方便对模块文件进行组织和管理,例如将与项目配置相关的脚本文件,单独作为一个配置层的package, 将与业务逻辑相关的作为一个业务逻辑层的package。
18.3.2 package也是对象
在Python中,一切皆对象,可将package也理解为一种命名空间对象。Python中的类有一个特殊的__init__方法,用来对对象进行初始化。在package中可以添加一个__init__.py,在__init__.py对package进行初始化,为package定义属性和方法。
现在我们在utils目录下定义一个__init__.py,在__init__.py中定义package的属性和方法:
# __file__ = __init__.py # __desc__ = 初始化package中的属性和方法 # 定义一个PACKAGE_NAME属性,表示当前package的名称 PACKAGE_NAME = "utils"通过import语句可以直接导出package的命名空间对象,导出命名空间对象以后,可以访问__init__.py中定义的属性和方法。现在我们进入windows命令行,切换到utils所在的目录,然后执行python进入交互模式:
D:\Python3-Learning\chapter18>pythonPython 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import utils>>> utils.PACKAGE_NAME'utils'
在交互模式中,先执行import导出package的命名空间,然后再直接访问utils命名空间中的PACKAGE_NAME属性。
Python3中的package也称为命名空间包,__init__.py不是必须的。
如需访问package下的模块,需要使用from来进行导出:
>>> from utils import calc_max>>> calc_max.calc_max(1,2,3,4,5)5
在交互模式中执行from utils import calc_max,从utils包中导出calc_max模块,再从calc_max模块中导出calc_max函数,来计算序列1,2,3,4,5中的最大值。
18.3.3 使用package组织项目结构
在企业开发中,通常使用三层结构来组织项目结构。三层架构是按照按项目的功能来划分的三层逻辑结构:表示层,业务逻辑层,数据访问层。
表示层的功能是接收用户输入的数据,以及进行数据显示。业务逻辑层,对应于具体的业务规则,数据访问层则将数据的读写操作封装到一个package。
使用分层架构使得项目的逻辑结构变得清晰可读,分工明确,开发人员只需关注整个结构中的某一层,降低了维护成本。我们现在使用Python中的package来组织三层架构,使用package组织三层架构的主要形式:
└── main.py└── uil├──__init__.py└── bll├──__init__.py└── dal├──__init__.py
其中main.py是整个应用程序的入口,uil指的是数据表示层,bll指的是业务逻辑层,而dal代表数据访问层。三层结构并不是单纯将每个package进行命名,按这种逻辑形式进行项目的组织,程序员在实际的设计过程中,应遵循模块化设计原则,同时多考虑代码的复用性以及减少层与层之间的相互依赖。
减少模块间的依赖,保持高内聚,低耦合,是一种重要的设计理念。
18.3.4 知识要点
(1) Python中的package,通俗地来进行解释,即模块仓库。(2) 在Python中一切皆对象,package也是一种对象。(3) 引入package是方便对模块文件进行组织和管理,例如将与项目配置相关的脚本文件,单独作为一个配置层的package, 将与业务逻辑相关的作为一个业务逻辑层的package。
18.3.5 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: