嵌套函数-Day4

一、嵌套函数:

  • 在一个函数体内声明一个函数(此函数性质和局部变量一样,只能在函数体内部调用)
  • 函数调用和函数嵌套有本质的区别,函数调用只是在函数体内调用此函数,函数嵌套是类似于定义局部变量一样,需要在函数体内声明函数

示例一:函数嵌套(嵌套函数)

def foo():
    def bar():     #此函数和局部变量性质一样,无法在foo()函数体外部调用
        print('in the bar')
    bar()   #只能在foo()函数体内部调用

foo()

 示例二:函数调用

def bar()
    pass

def foo():
    bar()    #仅仅调用函数,并没有声明函数

 

 二、嵌套函数的作用域

局部作用域和全局作用域的访问顺序

x=0
def grandpa():
    x=1
    def dad():
        x=2
        def son():
            x=3
            print(x)
        son()
    dad()
grandpa()

#返回值
3

 小结:最后输出的是3,说明作用域只能是从里往外找,一层一层的找

posted @ 2018-01-10 14:41  Wesley·zk  阅读(193)  评论(0编辑  收藏  举报