我不明白在沒有括號的情況下調用類會發生什么。我的問題來自閱讀此Python HOWTO:Logging Cookbook。具體來說,我試圖了解我在此問題結尾處添加的食譜。配方的目的是指示logging格式化程序從日志記錄配置字典中使用UTC時間。定義了一個類,class UTCFormatter(logging.Formatter): converter = time.gmtime然后僅按名稱使用;沒有括號。'formatters': { 'utc': { '()': UTCFormatter, # <-------------------Class used here 'format': '%(asctime)s %(message)s', },這里發生了什么,為什么以這種方式調用類比創建類的實例有好處?這種做事的方式叫什么?也就是說,我可以搜索哪些關鍵字(“類”以外)來幫助我在python文檔中找到有關此信息的更多信息?完整食譜:import loggingimport logging.configimport timeclass UTCFormatter(logging.Formatter): converter = time.gmtimeLOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'utc': { '()': UTCFormatter, 'format': '%(asctime)s %(message)s', }, 'local': { 'format': '%(asctime)s %(message)s', } }, 'handlers': { 'console1': { 'class': 'logging.StreamHandler', 'formatter': 'utc', }, 'console2': { 'class': 'logging.StreamHandler', 'formatter': 'local', }, }, 'root': { 'handlers': ['console1', 'console2'], }}if __name__ == '__main__': logging.config.dictConfig(LOGGING) logging.warning('The local time is %s', time.asctime())
添加回答
舉報
0/150
提交
取消