有沒有更好的方式只能在腳本運行時打印,__name__ == '__main__'
?僅在以腳本運行時纔打印?
我有一些腳本,我也導入和使用的一部分。下面
喜歡的東西的工作,但是醜陋的,並會在單獨每個腳本中定義:
def printif(s):
if globals()['__name__'] == '__main__':
print (s)
return
我在一些Python的日誌庫的擡頭看了一眼,但我們更希望兩個輕量級的解決方案.. 。
編輯:
最後我做這樣的事情:
# mylog.py
import sys
import logging
log = logging.getLogger()
#default logging level
log.setLevel(logging.WARNING)
log.addHandler(logging.StreamHandler(sys.stdout))
而且從腳本:
import log from mylog
...
log.info(...)
log.warning(...)
...
if __name__ == '__main__':
#override when script is run..
log.setLevel(logger.INFO)
該方案具有最小的代碼重複,每個腳本日誌級別和項目範圍內的默認級別......這正是我想要的。
我正在使用此變體。在python中簡單的日誌記錄是輕量級的(鍋爐,語法)。 – user318904 2010-12-14 19:49:49