Modular Programming with Python 第一章

来源:互联网 发布:mac如何切换任务 编辑:程序博客网 时间:2024/06/07 07:03

重点知识点是包结构的创建和理解

案例一:理解模块和如何引入模块,创建一个文件,命名为stats.py ,具体代码如下:

def init():
    global _stats
    _stats = {}




def event_occurred(event):
    global _stats
    try:
        _stats[event] = _stats[event] + 1
    except:
        _stats[event] = 1




def get_status():
    global _stats
    return sorted(_stats.items())

另外创建一个测试文件,命名为test_stats.py,具体代码如下:

import stats


stats.init()
stats.event_occurred("meal_eaten")
stats.event_occurred("snack_eaten")
stats.event_occurred("meal_eaten")
stats.event_occurred("snack_eaten")
stats.event_occurred("meal_eaten")
stats.event_occurred("diet_started")
stats.event_occurred("meal_eaten")
stats.event_occurred("meal_eaten")
stats.event_occurred("meal_eaten")
stats.event_occurred("diet_abandoned")
stats.event_occurred("snack_eaten")
for event, num_times in stats.get_status():
    print("{} occurred {} times".format(event, num_times))

则可以看到输出结果如下:

diet_abandoned occurred 1 times
diet_started occurred 1 times
meal_eaten occurred 6 times
snack_eaten occurred 3 times

知识点总结:我们创建了一个模块stats.py,另外在测试文件中,我们使用关键字import引入模块。

案例二:创建一个具体的包和理解包的结构

下面是一张包的图片


1、在此处我们创建了一个名为animals的包,里面含有6个模块,分别是初始化模块__init__.py,cat.py,cow.py,dog.py,horse.py,sheep.py。其中的初始化模块__init__.py是一个包结构中所必须存在的,可以为空,也可以进行一些初始化的设置。(注意:从py3.3开始可以没有初始化的模块,但是大家的习惯上和保证程序的兼容上考虑,都会使用此模块)

2、我们如何引用此包里面的模块呢?

如:

import animals.cow

animals.cow.speak()

即可。

或者使用:from...import的方法


经典的前端、中间组件、后端模式:


使用模块化编程可以带的好处,包括模块的增加和修改的易用,代码的重复使用率提高。

原创粉丝点击