交作业
Topic source- 看到一个小伙伴写的第三题,感觉比较好,通过在返回过程选择不同的返回函数,因为
@log
和`@log('test')
只是返回的函数不一样
def log(arg):
def decorator(func):
@functools.wraps(func)
def wrappers(*args, **kw):
if arg != None:
print('%s call %s' % (arg, func.__name__))
else:
print('call %s' % func.__name__)
return func(*args, **kw)
return wrappers
if isinstance(arg, str):
return decorator
else:
return decorator(arg)
- 1
tangdoubley
第一题:通过datetime类求时间差即可
第二题:
第三题:没有想到好的办法,看到有的小伙伴,用了默认参数和None貌似定义是这样
@log()
, 好像不符题意