global、nonlocal
高阶函数
-
内置函数
- globals()全局的,返回的是字典:字典里面的键值:全局作用域所有的内容
- locals()局部的,返回的是字典:字典里面的键值:局部作用域所有的内容
***global
- 在局部作用域声明一个全局变量
count=20
def xiaoxiannv():
global count
count+=1
xiaoxiannv()
print(count)
nonlocal
- 不能操作全局变量
- 只能在局部作用域内:内层函数对外层函数的局部变量进行修改
age=12
def xiaoxiannv():
age = 20
def wangmingming():
nonlocal age
age+=1
wangmingming()
print(age)
xiaoxiannv()
函数名的应用
- 函数名指向的是函数的内存地址。函数名+()就可以指向函数
- 函数名就是变量
def func1():
print('func1')
s=func1
d=s
q=d
q()
3.函数名可以作为容器类数据类型的元素
def func1():
print('func1')
def func2():
print('func2')
def func3():
print('func3')
li=[func1,func2,func3]
for i in li:
i()
得:
func1
func2
func3
4.函数名可以作为函数的参数
def a():
print('hello')
def b(n):
a()
q=b(a)
得:
hello
5.函数名可以作为函数的返回值
def a():
print('hello')
def b(n):
return n #return将n返回给函数的调用者q
q=b(a)
q() #函数把n(函数的内存地址)返回给q后,q+()执行函数
得:hello