还没达到目标。。
Topic source#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import functools
def log(f):
if hasattr(f, '__call__'):
@functools.wraps(f)
def wrapper(*args, **kw):
print('call %s():' % f.__name__)
return f(*args, **kw)
return wrapper
else:
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('%s %s():' % (f, func.__name__))
return func(*args, **kw)
return wrapper
return decorator
@log
def now():
print('2015-3-25')
now()
@log('DEBUG')
def today():
print('2015-3-25')
today()
print(today.__name__)
- 1
少虾
def beforelog(text1='call', text2='callend'): import functools if isinstance(text1, str) and isinstance(text2, str): def decorator(func): @functools.wraps(func) def wrapper(args, **kw): print("%s %s():" % (text1, func.name)) re = func(args, **kw) print("%s() %s:" % (func.__name, text2)) return re return wrapper return decorator
@before_log() def now1(old_time): import time print("now time: %s" % time.strftime("%Y-%m-%d", time.localtime(time.time())))
now("2014-8-7")
@before_log('execute') def now2(old_time): import time print("now time: %s" % time.strftime("%Y-%m-%d", time.localtime(time.time())))
不传参时,有个括号before_log()。。