Python 学习笔记-第14讲:面向对象-装饰器

一、装饰器

利用闭包封存上下文的特性可以巧妙地对现有函数进行包装,为现有函数增加功能,这就是装饰器。

1. 装饰器的语法糖:

在要包装的函数前添加@xxx。

例如:

@checkParams
def add(a, b):

    return a + b

等效于 checkParams(add)

2. 装饰器嵌套

可以为函数设置多个装饰器,形成嵌套结构。

@wrapper2
@wrapper1
def foo():
    print 'foo'

装饰器就像是一个俄罗斯套娃,把被装饰的方法当成最小的一个娃娃,封装在最内层,外面一层一层的嵌套装饰器。

嵌套装饰器的调用关系图如下:


Python 学习笔记-第14讲:面向对象-装饰器
装饰器优秀博客:
https://www.cnblogs.com/Eva-J/p/4977823.html



二 、XML 解析


Json 比 xml 结构更为简单


xml解析:
1.dom(文档对象模型) :把解析的xml整个加载到内存,组织成object树。
w3cDom dom4j
2.sax:事件驱动式解析,不会在内存中加载整个文档,只会根据自己编写的事件保存数据。
3.elementTree解析