嵌套函数-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,说明作用域只能是从里往外找,一层一层的找