Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1237599
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1769
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-13 16:19
个人简介

努力, 努力, 再努力

文章分类

全部博文(220)

文章存档

2018年(8)

2017年(46)

2016年(75)

2015年(92)

我的朋友

分类: Python/Ruby

2016-11-16 23:35:11

引用链接:

参考廖雪峰老师的教程



请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call'的日志。
# !/usr/bin/env python3
# -*- coding:utf-8 -*-
import functools
import time


def log(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print('begin call')
        print('call %s():' % func.__name__)
        value = func(*args, **kwargs)
        print('end call')
        return value

    return wrapper


@log
def func1(para,p2):
    print time.ctime()
    print "%s:%s" % (para,p2)


func1("test", "abc")

执行结果:
>>>
begin call
call func1():
Wed Nov 16 23:58:11 2016
test:abc
end call

阅读(726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~