Discuss / Python / 作业记录

作业记录

Topic source

豆糕啊

#1 Created at ... [Delete] [Delete and Lock User]

#打印函数执行时间

def metric2(fn):

    @functools.wraps(fn)

    def wrapper(*args, **kw):

        t0=time.time()

        res=fn(*args, **kw)

        t1=time.time()

        print('%s executed in %s ms' % (fn.__name__,t1-t0))

        return res

    return wrapper

#既支持@log,又支持@log('text')

import time, functools

def log(*args):

    a0=args[0]

    a1=args[1]

    def decorator(fn):

        @functools.wraps(fn)

        def wrapper(*args2, **kw):

            print('函数名:%s\nlog参数:%s' % (fn.__name__,a0+' 后面是 '+a1))

            return fn(*args2, **kw)

        return wrapper

    return decorator

@log('这里是带参数的decorator对应的参数','第二个参数') #带参数的decorator

def f2():

    print('程序执行成功')

f2()

#在程序调用前打印begin call,调用后打印end call

import functools

def log1(fn):

    @functools.wraps(fn)

    def end(func):

        print('end call function: %s' % fn.__name__)

    def wrapper(*args, **kw):

        print('begin call function: %s' % fn.__name__)

        return end(fn(*args, **kw))

    return wrapper

@log1

def f3():

    print('程序执行成功')

f3()


  • 1

Reply