比较简洁的一种写法
Topic sourceprint('begin call: log%s(%s)' % ('' if callable(text) else "('%s')" % text, func.__name__))
好像少了个()
print('begin call: log%s(%s)' % ('' if callable(text) else "('%s')" %(text, func.__name__)))
如果你非要加括号,应该这样加
print('begin call: log%s(%s)' % ('' if callable(text) else "('%s')" %(text), func.__name__))
return inter(text) if callable(text) else inter
这句应该怎么理解? 我理解错误了 如果log函数传入了text参数,那么可以被调用,就返回inter(text)
然后打印的时候 print('begin call: log%s(%s)' % ('' if callable(text) else "('%s')" % text, func.name))
如果传入text参数,那么可以被调用,就按照格式log%s(%s) 输出,哪里理解错误了
callable
是判断text
是否可调用
print('begin call: log%s(%s)' % ('' if callable(text) else "('%s')" % text, func.name))
这句话的意思是当text是函数时打印log(func.name)
,而当text是装饰器的参数时就打印log(text)(func.name)
相当是这四句,''
是空字符串都不懂?单引号和双引号括起一个字符串也不懂?那你应该重修字符串的课程了。
if callable(text):
print("begin call: log(%s)" % (func.name))
else:
print("begin call: log('%s')(%s)" % (text, func.name))
- 1
灰_手
装饰器代码:
测试例1:
例1输出:
测试例2:
例2输出: