一、嵌套函数:
- 在一个函数体内声明一个函数(此函数性质和局部变量一样,只能在函数体内部调用)
- 函数调用和函数嵌套有本质的区别,函数调用只是在函数体内调用此函数,函数嵌套是类似于定义局部变量一样,需要在函数体内声明函数。
示例一:函数嵌套(嵌套函数)
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,说明作用域只能是从里往外找,一层一层的找