- 为函数写一个装饰器,在函数执行之后输出 after
def add_end_message(fn):
def new_fn(*args,**kwargs):
result =fn(*args,**kwargs)
print('after')
return result
return new_fn()
- 为函数写一个装饰器,把函数的返回值 乘2再返回值
def num_ret(fn):
def new_fn(*args,**kwargs):
result = fn(*args,**kwargs)
if type(result) in (int,float):
return result * 2
return result
return new_fn()
- 写一个装饰器@tag要求满足如下功能:
def tag(func2):
def new_func2(*args, **kwargs):
result = func2(*args, **kwargs)
result = f'<p>{result}</p>'
return result
return new_func2
@tag
def render(text):
# 执行其他操作
return text
@tag
def render2():
return 'abc'
print(render('Hello')) # 打印出: <p>Hello</p>
print(render2()) # 打印出: <p>abc</p>
- 写一个创建一副扑克牌的生成器。
-
使用递归函数画出以下图形:
n = 5 ***** **** *** ** * n = 4 **** *** ** * def star(n): if n > 1: print('*' * n) if n-1 == 1: print('*') return star(n - 1) return print('*')
本文通过实例详细介绍了Python中的装饰器和生成器的使用方法。首先,展示了如何创建装饰器来添加额外的功能,如在函数执行后输出'after',以及将函数返回值乘2。接着,讲解了装饰器@tag的功能,它能将返回值包裹在HTML的<p>标签中。最后,给出了创建扑克牌生成器的示例,并用递归函数绘制星号图案。这些例子深入浅出地解释了Python中这两种重要概念的实际运用。
517

被折叠的 条评论
为什么被折叠?



