import functools
def log(text):
@functools.wraps(text)
def decorator(fcn):
def wrapper(*args,**kw):
if type(text)!=str:
print('call %s():' % fcn.__name__)
else:
print('%s %s():' % (text,fcn.__name__))
return fcn(*args,**kw)
return wrapper
if type(text)==str:
return decorator
return decorator(text)
@log
def f1():
print('可以@log')
@log('execute')
def f2():
print('可以@log()')
print(f1(),f2())
Sign in to make a reply
不开心去喝水
import functools
def log(text):
@functools.wraps(text)
def decorator(fcn):
def wrapper(*args,**kw):
if type(text)!=str:
print('call %s():' % fcn.__name__)
else:
print('%s %s():' % (text,fcn.__name__))
return fcn(*args,**kw)
return wrapper
if type(text)==str:
return decorator
else:
return decorator(text)
@log
def f1():
print('可以@log')
@log('execute')
def f2():
print('可以@log()')
print(f1(),f2())