【发布时间】:2021-12-19 14:54:12
【问题描述】:
我个人想不出任何东西,但我想知道是否存在一些边缘情况,旧方法可能会更好。
【问题讨论】:
-
如果你要格式化的字符串是一个变量,f-strings 甚至不是一个选项
标签: python string-formatting f-string
我个人想不出任何东西,但我想知道是否存在一些边缘情况,旧方法可能会更好。
【问题讨论】:
标签: python string-formatting f-string
通常最好通过以下方式记录调用
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 日志,那么第二个 sn-p 会执行潜在昂贵的字符串插值,将参数转换为字符串等。第一个 sn-p 不进行插值并且提前返回而不序列化参数。
【讨论】:
是的,当您需要以多种方式重用相同的模板字符串时,最好使用格式化字符串。例如看看这个question
【讨论】:
f-strings 不是您想要本地化的任何东西的选项。 f 字符串直接硬编码到程序的源代码中,因此您不能根据用户的语言设置将其动态地换成已翻译的模板字符串。
【讨论】: