美文网首页
2019-11-18作业

2019-11-18作业

作者: Dxes | 来源:发表于2019-11-18 20:43 被阅读0次

1.为函数写一个装饰器,在函数执行之后输出 after

def after(fn):
    def test(*args, **kwargs):
        z = fn(*args, **kwargs)
        print("after")
        return z

    return test


@after
def x(x, y):
    sum1 = x + y
    return sum1


print(x(10, 20))

2.为函数写一个装饰器,把函数的返回值 +100然后再返回

def ld_add(fn):
    def test(*args, **kwargs):
        s = fn(*args, **kwargs)
        return s + 100

    return test

3.写一个装饰器@tag瞒住如下功能:

def tag(fn):
    def test(*args, **kwargs):
        return " <p>" + fn(*args, **kwargs) + "</p> "

    return test


@tag
def render(text):
    # 执行其他操作
    return text


@tag
def render2():
    return 'abc'


print(render('Hello'))  # 打印出: <p>Hello</p>
print(render2())  # 打印出: <p>abc</p>

4.写一个装饰器@tag要求满足如下功能

def tag(name):
    def ss(fn):
        def test(*args, **kwargs):
            return "<" + name + ">" + fn(*args, **kwargs) + "<" + name + ">"

        return test

    return ss


@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>

1.为函数写一个装饰器,根据参数不同做不同操作。
flag为True,则让原函数执行返回值加100,并返回
flag为False,则让函数执行返回值减100,并返回

def dif(flag: bool):
    def s(fn):
        def test(*args, **kwargs):
            if flag:
                return fn(*args, **kwargs) + 100
            elif flag == False:
                return fn(*args, **kwargs) - 100
            else:
                return

        return test

    return s


@dif(True)
def y(x, y):
    sum1 = x + y
    return sum1


print(y(10, 20))


@dif(flag=False)
def y(x, y):
    sum1 = x + y
    return sum1


print(y(10, 20))

相关文章

网友评论

      本文标题:2019-11-18作业

      本文链接:https://www.haomeiwen.com/subject/yhxiictx.html