我个人想不出任何东西,但我想知道是否存在一些边缘情况,其中较旧的方法可能会更好。
通常最好通过记录调用
log.info("some log {} data {} to be logged", arg1, arg2)
# will be `message.format(*args)` at the end of the day
与。
log.info(f"some log {arg1} data {arg2} to be logged")
原因是,如果我的记录器没有配置为记录INFO日志,那么第二个片段会进行可能昂贵的字符串插值,将参数转换为字符串等。第一个片段不进行插值,并且在没有序列化参数的情况下提前返回。
是的,当您需要以多种方式重用同一模板字符串时,最好使用格式化字符串。例如,看看这个问题
f-string不是任何想要本地化的选项。f字符串直接硬编码到程序的源代码中,因此不能根据用户的语言设置动态地将其替换为翻译后的模板字符串。