所有的弦都应该变成f弦吗?

2020-05-04 19:21:44

今年提出的第一个语言改变是最激进的:将f字串设为默认值。埃里克·V·史密斯(Eric V.Smith)在2015年为f-string撰写了PEP,他说,它们是Python3.6的杀手级功能,也是他的许多客户转向Python3的动机。然而,它们很容易出错。忘记前缀是很常见的:Smith观察到程序员给所有字符串加f前缀,不管它们是否包含替换,只是为了避免这个错误。阅读更多2020 Python语言峰会的报道。当在3.6中添加f字符串时,建议将其设置为默认值,但这是一个太大的突破性变化。此外,用双花括号替换所有的文字大括号字符会很难看:在今年的峰会上,史密斯再次提议将f字符串作为默认字符。以下类型的字符串将成为f-字符串:像b";string";这样的二进制文字将不会成为f-字符串。Smith会为普通字符串添加一个新的字符串前缀,它的行为与今天的普通字符串一样。性能不会受到影响:没有任何替换的字符串的运行时行为将与今天相同。普通字符串仍然有一些用途;例如,包含大括号的正则表达式,或者作为str.format的输入。在史密斯看来,f字符串已经取代了str.format,但观众中的一些人反对使用纯字符串的str.format允许后期绑定,而f字符串不会取代str.format_map。史密斯承认他的想法存在一些问题。它将引入另一个字符串前缀。翻转主开关以启用f-mode会破坏一些代码,因此必须有一种方法逐个模块地逐渐启用更改,可能是这样的:他担心更改是如此剧烈,以至于Python核心开发人员永远不会有勇气在不需要将来导入的情况下启用它。如果是这样的话,这个想法应该立即放弃。Yarko Tymciurak在聊天中问道:你如何向初学者描述为什么需要这个?史密斯承认,p字符串让语言变得更加复杂,但他说,自然环境中的p字符串将非常少,我认为他们的解释会相当明显。几位与会者都热情地想要做出改变。布雷特·坎农说,消除对f前缀的需要会让初学者更容易掌握这门语言。拉里·黑斯廷斯(Larry Hastings)指出,PHP字符串默认情况下是格式化字符串,孩子们喜欢它的脚本。然而,他写道,在我看来,这似乎解决了';哦,我忘了在字符串前面加一个f,直到为时已晚才注意到。这个问题是否严重到我们必须改变语言的地步?
&34;许多人一致认为,如果Python语言从头开始,默认使用f字符串将是个好主意;然而,保罗·摩尔、吉多·范罗萨姆和其他人担心破坏会超过好处。该小组的结论是,史密斯应该将他的PEP发送到邮件列表进行进一步的辩论。