我不明白在没有括号的情况下调用类会发生什么。我的问题来自阅读此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
提交
取消