本节内容
- 嵌套函数
-
局部作用域和全局作用域的访问顺序
一、嵌套函数
1、定义
在一个函数的函数体内,用def 去声明一个函数,而不是去调用其他函数,称为嵌套函数。
1
2
3
4
5
6
7
8
9
10
11
12
|
def foo(): print ( "in the foo" ) def bar(): #在foo函数体内,用def声明一个函数 print ( "in the bar" ) bar() #调用foo函数 foo() #输出 in the foo in the bar |
以上是高阶函数的定义,但是我们来看看下面这种情况是不是高阶函数呐?
1
2
3
4
5
6
7
8
|
def bar(): print ( "in the bar" ) def foo(): print ( "in the foo" ) bar() #调用bar函数 foo() |
很显然不是,因为只是调用了bar函数,没有用def去声明一个函数。
二、局部作用域和全局作用域的访问顺序
1、先来看一个小例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#局部作用域和全局作用域的访问顺序 x = 0 def grandpa(): x = 1 def dad(): x = 2 def son(): x = 3 print (x) son() dad() #调用grandpa grandpa() #输出 3 |
很显然最后输出的是3,这个说明作用域:只能是从里往外找,一层一层的的找。