1.为函数写一个装饰器,在函数执行之后输出 after
def after(fn):
def test(*args, **kwargs):
z = fn(*args, **kwargs)
print("after")
return z
return test
@after
def x(x, y):
sum1 = x + y
return sum1
print(x(10, 20))
2.为函数写一个装饰器,把函数的返回值 +100然后再返回
def ld_add(fn):
def test(*args, **kwargs):
s = fn(*args, **kwargs)
return s + 100
return test
3.写一个装饰器@tag瞒住如下功能:
def tag(fn):
def test(*args, **kwargs):
return " <p>" + fn(*args, **kwargs) + "</p> "
return test
@tag
def render(text):
# 执行其他操作
return text
@tag
def render2():
return 'abc'
print(render('Hello')) # 打印出: <p>Hello</p>
print(render2()) # 打印出: <p>abc</p>
4.写一个装饰器@tag要求满足如下功能
def tag(name):
def ss(fn):
def test(*args, **kwargs):
return "<" + name + ">" + fn(*args, **kwargs) + "<" + name + ">"
return test
return ss
@tag(name='p')
def render(text):
# 执行其他操作
return text
@tag(name='div')
def render2():
return 'abc'
print(render('Hello')) # 打印出: <p>Hello</p>
print(render2()) # 打印出: <div>abc</div>
1.为函数写一个装饰器,根据参数不同做不同操作。
flag为True,则让原函数执行返回值加100,并返回
flag为False,则让函数执行返回值减100,并返回
def dif(flag: bool):
def s(fn):
def test(*args, **kwargs):
if flag:
return fn(*args, **kwargs) + 100
elif flag == False:
return fn(*args, **kwargs) - 100
else:
return
return test
return s
@dif(True)
def y(x, y):
sum1 = x + y
return sum1
print(y(10, 20))
@dif(flag=False)
def y(x, y):
sum1 = x + y
return sum1
print(y(10, 20))
网友评论