log()() 第一个()表示调用log() 第二个()表示wrapp里面的func
流程解读:
输入命令动作放入ss
如果ss==@log 然后就调用log()(nows)
因为log()为空所以不会匹配log函数里面的if args != ‘ ‘ 不会打印args[0]
关于args与kw的认识可以参考这个博主写的 简单易懂
http://blog.sina.com.cn/s/blog_65a8ab5d0101fglm.html
之所以用args[0]是因为args是一个tuple 如果只打印args 界面不美观简洁
同理 如果ss 不等于@log就执行log(ss)(nows)
写出一个@log的decorator 既支持@log也支持@log('xxx')
原文:http://rachelxie.blog.51cto.com/9080122/1742491