gpt4 book ai didi

Python 在线切换

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:01 28 4
gpt4 key购买 nike

我正在寻找一种更优雅的方式来执行以下操作:

py_loglevel = logging.DEBUG
if self.loglevel == "INFO":
py_loglevel = logging.INFO
elif self.loglevel == "WARNING":
py_loglevel = logging.WARNING
elif self.loglevel == "ERROR":
py_loglevel = logging.ERROR

这当然可行,但不知何故让我很恼火,因为它使我的代码变得困惑并且吸引了我的注意力,尽管它确实微不足道。这可以在 oneliner 中完成吗?

最佳答案

使用字典:

levels = {
'INFO': logging.INFO,
'WARNING': logging.WARNING,
'ERROR': logging.ERROR,
}
py_loglevel = levels.get(self.loglevel, logging.DEBUG)

或者,查找名称作为模块的属性:

py_loglevel = getattr(logging, self.loglevel, logging.DEBUG)

前提是名称与模块上定义的名称相匹配。

关于Python 在线切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507523/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com