-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecorator.py
More file actions
38 lines (32 loc) · 852 Bytes
/
decorator.py
File metadata and controls
38 lines (32 loc) · 852 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import functools
def log(func):
def wrapper():
print('begin call')
func()
print('end call')
return wrapper
def log(text):
if isinstance(text, str):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('begin call %s %s' %(text, func.__name__))
func(*args, **kw)
print('end call %s %s' % (text, func.__name__))
return wrapper
return decorator
else:
@functools.wraps(text)
def wrapper(*args, **kw):
print('begin call %s' % text.__name__)
text(*args, **kw)
print('end call %s' % text.__name__)
return wrapper
@log('let`s go')
def gogogogogo():
print('2017-02-13')
@log
def now():
print('2017-2-14')
now()
gogogogogo()