- 为函数写一个装饰器,在函数执行之后输出 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('*')