python装饰器练习题

练习题1. 请使用python, 对下面的函数进行处理,

def hello(name):
    print "hello, %s" % name

在函数被调用时打印耗时详情

<function name: hello>
<function call begin>
hello, tom
<function call end>
[timecosts: 3.81469726562e-06s]

答案:

用到了装饰器,一个很简单的装饰器

贴出代码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '人生入戏'

import time

def calc_time(func):
    def wrapper(*args,**kwargs):
        print("<function name: %s>" % func.__name__)
        print("<function call begin>")
        start_time = time.clock()
        func(*args,**kwargs)
        time.sleep(1)
        end_time = time.clock()
        print("<function call end>")
        print("time costs:%f" % (end_time - start_time))
    return wrapper

@calc_time
def hello(name):
    print("Hello, %s" % name)

hello("World")

运行结果:

<function name: hello>
<function call begin>
hello, world
<function call end>
time costs:0.999846
posted @ 2017-08-13 22:12  人生入戏  阅读(632)  评论(0编辑  收藏  举报