打印("") vs 打印(f"")

问题描述

前几天我最终讨论了 Python 中的 print() 与 print(f-strings)。这一切都始于我想将我的 linter 和自动完成更改为 print(f" 而不是 print("。一些经验丰富的程序员反对并说:

  1. 你不想那样!
  2. 没有理由使用print(f如果没有变量
  3. 比较慢!

所以,我的问题在于这些论点的上下文有效性。

  1. 你不想那样! 这显然是“我知道你真正想要什么,比你知道的还要多。”这是程序员在不粗鲁的情况下做大猩猩胸部的方式,它经常被跟随坚实的论据。然而,在这种情况下,他们做得很短。我相信没有提供任何上下文有效的论据来反对它。

  2. 没有理由使用print(f如果没有变量 这在理论上是正确的,但在这自动完成 print(f" 的情况下,有一个完全正当的理由,工作流速度。

  3. 比较慢! 是的。 print(f" 在打印编译时已知的字符串时速度较慢。如果您正在开发运行时关键应用程序,这是有效的。但是,如果您这样做,则不会打印。在 any中打印 em> 表单是运行时的噩梦。完成后最多打印一行,但这是一个 O(1) 操作。如果文本输出在屏幕上如此快速用户将没有时间处理它通过阅读,使其变得无用。最后一个 O(1) 打印的时间是 0.05 还是 0.10 秒,在所有时间复杂度分析的情况下,我认为可以忽略不计。

举出一种取决于用户实际阅读的情况,从头到尾,打印速度超过了print(f""的时间上限)。

至于其他带有变量和格式的情况(这是我的典型用例),使用 print(f" 实际上比 print(",因为 python 3.6 或类似的东西。另外,参数来降低“可读性”,这就是我认为 PEP 498 理由取消资格的原因。

请提供上下文有效的案例,从开发人员的角度来看,在这两者之间进行更改更快,并且在用例中更受欢迎,而不是理论上。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)