defadd_after(fn):defnew_fn(*args,**kwargs):
result = fn(*args,**kwargs)returnstr(result)+'after'return new_fn
@add_afterdefsum1(a, b):return a + b
print(sum1('yy','xx'))
为函数写一个装饰器,把函数的返回值 乘2再返回值
defreturn_squre(fn):defnew_fn(*args,**kwargs):
result = fn(*args,**kwargs)return result *2return new_fn
@return_squredefsum2(a, b):return a + b
print(sum2(10,20))
写一个装饰器@tag要求满足如下功能:
deftag(fn):defnew_fn(*args,**kwargs):
result = fn(*args,**kwargs)
result =f'<p>{result}</p>'return result
return new_fn
@tagdefrender(text):return text
@tagdefrender2():return'abc'print(render('hello'))print(render2())
写一个创建一副扑克牌的生成器
defcreate_poker():
num =['A','2','3','4','5','6','7','8','9','10','J','Q','K']for x in num[::]:print(f'红桃{x}')yieldfor i in num[::]:print(f'黑桃{i}')yieldfor j in num[::]:print(f'樱花{j}')yieldfor k in num[::]:print(f'方片{k}')yield
result1 = create_poker()next(result1)next(result1)next(result1)next(result1)
使用递归函数画出以下图形
defpaint_image(n):print('*'*n)if n ==1:return
paint_image(n -1)
paint_image(5)