-
写一个装饰器@tag要求满足如下功能:
@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> '===========================================================' '===========================================================' def tag(name): def no_arguments(f): def new_f(*args, **kwargs): result = f(*args, **kwargs) if name == 'p': return result elif name == 'div': return result return result return new_f return no_arguments @tag1('p') def render(text): # 执行其他操作 return text @tag1('div') def render2(): return 'abc' print(render('Hello')) # 打印出: <p>Hello</p> print(render2()) # 打印出: <div>abc</div>
-
为函数写一个装饰器,根据参数不同做不同操作。
flag为 True,则 让原函数执行后返回值加 100,并返回。 flag为 False,则 让原函数执行后返回值减 100,并返回。 def tag(flag): def no_arguments(f): def new_f(*args, **kwargs): result = f(*args, **kwargs) if flag == True: return result + 100 elif flag == False: return result - 100 return result return new_f return no_arguments @tag2(False) def func1(a, b): return a + b print(func1(10, 20))
-
为函数写一个装饰器,根据不同的运算符和数据对原函数的返回值进行相应的数值操作
例如: 运算符是+,数据是 100, 就对原函数的返回值进行加100的处理 运算符是-, 数据是 20,就对原函数的返回值进行减20的处理 运算符是*, 数据是 3, 就对原函数的返回值进行乘3的处理 运算符是/, 数据是 2, 就对原函数的返回值进行除2的处理 其他情况的符号不做处理 def tag(flag, num): def no_arguments(f): def new_f(*args, **kwargs): result = f(*args, **kwargs) if flag == '+': return result + num elif flag == '-': return result - num elif flag == '*': return result * num elif flag == '/': return result / num return result return new_f return no_arguments @tag3('+', 100) def func2(num1): return num1 print(func2(100))
-
写一个斗地主发牌器
day12 装饰器作业
最新推荐文章于 2022-03-31 21:34:05 发布