python中一个画树的程序,能解释一下是怎么运行的吗

主函数部分我懂,tree函数是怎么运行的呢,能解释下吗

from turtle import Turtle, mainloop

def tree(plist, l, a, f):
        if l > 5:  
                lst = []
                for p in plist:
                        p.forward(l)
                        q = p.clone()
                        p.left(a)
                        q.right(a)
                        lst.append(p)
                        lst.append(q)
                tree(lst, l * f, a, f)

def main():
        p = Turtle()
        p.color("green")
        p.pensize(5)
        p.hideturtle()
        p.speed(10)
        p.left(90) 
        p.penup()
        p.goto(0, -200)
        p.pendown()
        t = tree([p], 200, 65, 0.6375)

main()

递归,依次在新的节点上生成左右两个新的节点,一直计算到分支长度小于5结束。

我记得turtledemo库里有一个tree文件,和这个代码类似