闭包
def test(a,b):
def test_in(x):
print(a*x+b)
return test_in
line1=test(1,1) //===line1(x):print(x+1)
line2=test(4,6) //===line2(x):print(4*x+6)
line1(4)
line2(7)
------------------------------
装饰器:
def desc(func):
print('this is in desc')
def inner():
return "<b>"+func()+"</b>"
return inner
def desc1(func):
def inner1():
return '<i>'+func()+'</i>'
return inner1
@desc //===f=desc(f)在此执行命令 ,会打印this is in desc
def f():
return 'hello world'
r=f()
print(r) //<b><i>hello world</i></b>
通用装饰器:
def desc(func):
def inner(*args,**kwargs):
res=func(*args,**kwargs)
return res
return inner
---------------------------
带参数的装饰器:
def desc_args(pre):
def desc(func):
def inner(*args,**kwargs):
res=func(*args,**kwargs)
print(pre)
return res
return inner
return desc
@desc_args('hello')
def f():
print('this is in f')
f()