-
写一个装饰器@tag要求满足如下功能:
def tag(name): def test1(func): def new_func(*args,**kwargs): re = func(*args,**kwargs) return f'<{name}>{re}</{name}>' return new_func return test1 @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(flag): def test1(func): def new_func(*args,**kwargs): re = func(*args,**kwargs) if flag == True: return re + 100 return re-100 return new_func return test1
flag为 True,则 让原函数执行后返回值加 100,并返回。 flag为 False,则 让原函数执行后返回值减 100,并返回。
-
为函数写一个装饰器,根据不同的运算符和数据对原函数的返回值进行相应的数值操作
def tag(a,b): def test1(func): def new_func(*args,**kwargs): re = func(*args,**kwargs) if b == '+': return f'{re+a}' elif b == '-': return f'{re-a}' elif b == '*': return f'{a*re}' elif b =='/': return f'{a/re}' else: return re return new_func return test1 #@tag(3,b='*') #def func1(x): # return x #print(func1(5))
例如: 运算符是+,数据是 100, 就对原函数的返回值进行加100的处理 运算符是-, 数据是 20,就对原函数的返回值进行减20的处理 运算符是*, 数据是 3, 就对原函数的返回值进行乘3的处理 运算符是/, 数据是 2, 就对原函数的返回值进行除2的处理 其他情况的符号不做处理
-
写一个斗地主发牌器
import random num1 = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] num1_color = ['黑桃', '红桃', '梅花', '方块'] list1 = ['大鬼', '小鬼'] for a in num1: for b in num1_color: list1.append(b + a) print(list1) print(len(list1)) print(list1) random.shuffle(list1) # 发牌: def ruffle(A): one = [] two = [] three = [] for x in A: yield x one.append(next(list1)) print('玩家A的牌:', one) yield x two.append(next(list1)) print('玩家B的牌:', two) yield x three.append(next(list1)) print('玩家C的牌:', three) for X in one+two+three: print('地主要翻的牌:', list1.remove(X)) ruffle(list1)
day12 作业
最新推荐文章于 2024-07-12 16:16:27 发布