Python函数作用域和匿名函数以及闭包、回调、递归的使用
程序员文章站
2024-02-24 14:34:58
...
# 函数的作用域
# 全局变量不会去拿局部变量的东西
# 局部变量有的东西就拿自己的,没有就拿全局变量的
# global 可以改变全局变量的值
a = 8 # 全局变量
c = 6
def f(): # 局部变量
global a # global:当局部的需要改变全局的就用
b = 5
a = a+1 # 强行要改变全局变量的东西,报错
print(a) # 输出 9
def f2():
nonlocal b # nonlocal:当局部的使用局部的就用
b = b+1
print(b) # 输出 6
f2()
f()
print(a) # 输出 9
# 匿名函数
li = [1,23,4,12,42,2]
print(list(filter(lambda o:o>10,li)))
# 闭包:外层函数返回内层函数名称为闭包
现在需要在全局来调用f2函数
def f():
print('这里是f函数')
def f2():
print('这里是f2函数')
return f2 # f2 函数名
l=f()
l()
函数什么时候执行: 函数名加括号
return 返回的是什么l就是什么
# 递归:函数自己调用自己
def f():
print('这里是f函数')
f()
f()
n:return 5*4*3*2*1 ===l
f(4) f(3) f(2) f(1)
def f(n):
if n == 1:
return 1
return f(n-1)*n
l = f(5)
print(l)
# 回调:
把一个函数当做是参数传给另一个函数
目的:想让这个f2函数给f去操作
def f(o,i): # o==>f2函数名
o() # 调用f2函数
def f2():
print('这里是f2函数')
f(f2,1) # f2 ===> f2 函数名
上一篇: Python Day5
推荐阅读
-
Python函数作用域和匿名函数以及闭包、回调、递归的使用
-
javascript函数递归、回调、闭包和作用域用法实例详解
-
基于Python函数的作用域规则和闭包(详解)
-
javascript函数递归、回调、闭包和作用域用法实例详解
-
JavaScript闭包-匿名函数和函数的作用域链
-
JavaScript闭包-匿名函数和函数的作用域链
-
php请求接口以及json和php中数组的转换,函数,匿名函数,匿名函数的闭包以及引用变量,更改变量的值,匿名函数的回调,
-
基于Python函数的作用域规则和闭包(详解)
-
php请求接口以及json和php中数组的转换,函数,匿名函数,匿名函数的闭包以及引用变量,更改变量的值,匿名函数的回调,
-
全面演示: 函数的作用域与闭包,回调的使用场景以及函数的多值返回方式