import functools
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args,**kw):
print('begin call %s %s' % (text,func.__name__))
return func(*args,**kw)
print('end call %s %s' % (text,func.__name__))
return wrapper
return decorator
@log
def now():
print('2021-10-16')
now()
运行上述代码时,总是出现这样的错误提示,要怎么样解决呢,之前也有出现过,但是一直没有找到解决的办法
错误提示:TypeError: decorator() missing 1 required positional argument: 'func'
decorator没有传参啊
代码的缩进有问题,可运行代码如下:
import functools
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('begin call %s %s' % (text, func.__name__))
return func(*args, **kw)
print('end call %s %s' % (text, func.__name__))
return wrapper
return decorator
return text
@log
def now():
print('2021-10-16')
now()
你错误提示没贴啊。
不过你写法有个问题
@log 这行应该改为
@log(text="这里为你想记录的内容")