# def max(a,b): # return a if a>b else b # # def the_max(x,y,z): #函数的嵌套调用 # c = max(x,y) # return max(c,z) # # print(the_max(1,2,3)) #函数的嵌套定义 #内部函数可以使用外部函数的变量 # a = 1 # def outer(): # a = 1 # def inner(): # a = 2 # def inner2(): # nonlocal a #声明了一个上面第一层局部变量 # a += 1 #不可变数据类型的修改 # inner2() # print('##a## : ', a) # inner() # print('**a** : ',a) # outer() # print('全局 :',a) #nonlocal 只能用于局部变量 找上层中离当前函数最近一层的局部变量 #声明了nonlocal的内部函数的变量修改会影响到 离当前函数最近一层的局部变量 # 对全局无效 # 对局部 也只是对 最近的 一层 有影响 # a = 0 # def outer(): # # a = 1 # def inner(): # # a = 2 # def inner2(): # nonlocal a # print(a) # inner2() # inner() # # # outer() # def func(): # print(123) # # # func() #函数名就是内存地址 # func2 = func #函数名可以赋值 # func2() # # l = [func,func2] #函数名可以作为容器类型的元素 # print(l) # for i in l: # i() def func(): print(123) def wahaha(f): f() return f #函数名可以作为函数的返回值 qqxing = wahaha(func) # 函数名可以作为函数的参数 qqxing()
python 函数的嵌套 和 作用域链
猜你喜欢
转载自www.cnblogs.com/xiao-zhi/p/9877023.html
今日推荐
周排行