免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1644 | 回复: 1
打印 上一主题 下一主题

输出日志的问题 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:50:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-15 09:14 |只看该作者 |倒序浏览
刚学python,写了一个输出日志的py
#!/usr/bin/python
import time

DEBUG = True

if DEBUG:
    def debug(*msgs):
        print time.strftime("%Y/%m/%d %H:%M:%S"),
        for  msg in msgs:
            print msg,
        print
else:
    def debug(*msgs):
        pass


这样在其他py脚本里 import 这个文件,就能用debug("......")输出日志。
而在分发时,可以修改“DEBUG=False”关掉日志的输出。

现在的问题是,关掉日志输出后,还会产生一个函数调用的开销。

在C里面,用宏的话:
#ifdef DEBUG
#define debug(msg) ....
#else
#define debug(msg)
#endif

是不会有任何开销产生的。

有没有办法做到?

论坛徽章:
0
2 [报告]
发表于 2009-05-15 09:27 |只看该作者
在C里面,用宏的话是代码级的替换,当然不会有任何开销,而在Python中是运行时判断。
###########################
#define debug(msg)
只声明,而没实现
###########################
def debug(*msgs):
      pass
pass是一种实现,只是这个实现什么事情也没做
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP