开始学yield


                摘自
limodou的学习记录
               
               
                def deal_tree(node):
    if not node:
        return
    if node.leftnode:
        deal_tree(node.leftnode)
    process(node)
    if node.rightnode:
        deal_tree(node.rightnode)
deal_tree(root)
以上代码,对结点的process和递归程序混在一起,结构不清晰,改成以下代码:
def walk_tree(node):
        if not node:
            return
        if node.leftnode:
            for i in walk_tree(node.leftnode):
                yield i
        yield node
        if node.rightnode:
            for i in walk_tree(node.rightnode):
               yield i
for node in wald_tree(root):
       process(node)
对结点的遍历,和对结点的处理分开,结构清晰