-
LEGB查看全部
-
LEGB查看全部
-
python3?查看全部
-
LEGB查看全部
-
谢谢查看全部
-
装饰器就是对闭包的使用: #coding:utf-8 def deco(func): #1、 def in_deco(x,y): print('in deco') func(x,y) #3、 print('call deco') #0、 return in_deco #1、 #1、将bar函数传入deco()中,即deco(bar),这里返回了in_deco #2、bar = in_deco #3、in_deco中执行到最后一句,使用到bar函数 @deco #会执行代码,将其下面的函数传进去,相当于调用了bar = dec(bar) def bar(x,y): print("in bar",x+y) print(type(bar)) bar(2,4) 输出: call deco <class 'function'> in deco in bar 6查看全部
-
函数调用顺序:(点击编辑查看) #coding:utf-8 def my_sum(*arg): #3、 print('my_sum') return sum(arg) def my_average(*arg): print('my_average') return sum(arg)/len(arg) def dec(func): def in_dec(*arg): #闭包 1、 print('in_dec()=',arg) if len(arg) == 0: return 0 for val in arg: if not isinstance(val, int): return 0 return func(*arg) #2、 return in_dec #2、 my_sum = dec(my_sum) #1、dec函数返回in_dec -> my_sum #2、my_sum = in_dec(*arg) print(my_sum(1,2,3,4,5)) print(my_sum(1,2,3,4,5,'6')) 打印结果: in_dec(*arg)= (1, 2, 3, 4, 5) my_sum 15 in_dec(*arg)= (1, 2, 3, 4, 5, '6') 0查看全部
-
# -*- encoding:utf-8 -*- passline = 60 # 全局变量,作用域在global中 def func(val): passline = 90 # 局部变量,作用域在local中 if val >= passline: # val也是局部变量,作用域在local中 print ('pass') else: print ('failed') def in_func(): print(val) # 此处val作用域在enclosing中,在func()函数中找到了val值 in_func() def Max(val1, val2): return max(val1, val2) # max()为Python运行时自动导入的方法,作用域在build-in中 func(89) print (Max(89, 90))查看全部
-
装饰器就是对闭包的使用: #coding:utf-8 def deco(func): #1、 def in_deco(x,y): print('in deco') func(x,y) #3、 print('call deco') #0、 return in_deco #1、 #1、将bar函数传入deco()中,即deco(bar),这里返回了in_deco #2、bar = in_deco #3、in_deco中执行到最后一句,使用到bar函数 @deco #会执行代码,将其下面的函数传进去,相当于调用了bar = dec(bar) def bar(x,y): print("in bar",x+y) print(type(bar)) bar(2,4) 输出: call deco <class 'function'> in deco in bar 6查看全部
-
闭包2--闭包接收函数作为参数查看全部
-
闭包实例演示: 1- 实现代码封装 2- 实现代码复用 3- 原理:将enclosing中的属性设置为到自身的closure函数中,外层函数执行结束后,原有的内存空间已经消失查看全部
-
LEGB函数作用域查看全部
-
执行过程查看全部
-
python变量查找顺序查看全部
-
local enclosing global build-in查看全部
举报
0/150
提交
取消