"""___author___ =JiangYiwei"""
# 1.为函数写一个装饰器,在函数执行之后输出 after
def add_after(fn):
def test(*args, **kwargs):
fn(*args, **kwargs)
print('after')
return test
@add_after
def add_1(x):
print(x * 2)
add_1(2)
# 2.为函数写一个装饰器,把函数的返回值 +100 然后再返回。
def add_100(fn):
def test(*args, **kwargs):
re = fn(*args, **kwargs) + 100
return re
return test
@add_100
def add_2(x):
return (x * 2)
print(add_2(2)) # 104
# 3.写一个装饰器@tag要求满足如下功能:
def tag(fn):
def test(*args, **kwargs):
re = fn(*args, **kwargs)
return "<p>" + re + "</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 out_(fn):
def test(*args, **kwargs):
if name == "p":
re = fn(*args, **kwargs)
return '<p>' + re + '</p>'
elif name == 'div':
re = fn(*args, **kwargs)
return '<div>' + re + '</div>'
else:
return
return test
return out_
# def say_hello(country):
# def wrapper(func):
# def deco(*args, **kwargs):
# if country == 'china':
# print('你好!')
# elif country == 'america':
# print('hello')
# else:
# return
# func(*args, **kwargs)
# return deco
# return wrapper
#
#
# @say_hello('china')
# def chinese():
# print('我来自中国。')
print("====================4=====================")
@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>
# 为函数写一个装饰器,根据参数不同做不同操作。
#
# flag为True,则 让原函数执行后返回值加100,并返回。
#
# flag为False,则 让原函数执行后返回值减100,并返回。
def say_hello(flag):
def wrapper(func):
def text(*args, **kwargs):
if flag:
re = func(*args, **kwargs) + 100
return re
else:
re = func(*args, **kwargs) - 100
return re
return text
return wrapper
@say_hello(flag=True)
def add_2(x):
return (x * 2)
print(add_2(2))
2019-11-18 装饰器作业
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 超实用,高大上的图文混排-幻灯片背景填充!超级烧脑的一个综合练习! 看着一个高大上的PPT,要想着这个PPT是怎么...