def func():
    #函数体

 以上定义了一个函数相当于定义了一个字符串一样,即把函数体的内容赋值给这个函数

def foo():
    print("yxz")
    bar()               #已经将bar定义出来了,但是只是没有执行而已
def bar():
    print("ymz")
foo()
#这样执行不会报错

  自己总结:在没有global的时候在使用局部变量的时候,优先在自己的模块里面找局部变量,实在找不着,在找其外一层的变量。

        有global的时候,只会对全局变量进行修改,而佩奇讲的nonlocal name的例子,是只对上一级的变量进行修改