我才知道你会写
'{}{}'.format(string_a, string_b)
代替
'{0}{1}'.format(string_a, string_b)
在Python中,即,当您希望事物按顺序逐一排列时,可以省略字符串格式参数的数字。
这被认为是Pythonic吗?
注意:“ Pythonic”是Python程序员中常用的术语,表示惯用的Python代码。在Python文化中,对于样式问题,尤其是对于像这样的非常具体的问题,人们倾向于达成明确的共识,因为该语言的明确设计理念是:“应该有一个-最好只有一个-显而易见的方式。” 这是从“ Python的禅宗”一书中引用的,这是一组格言,在定义什么是“ Pythonic”方面有很长的路要走,并且包含在Python的每个发行版中(在任何Python解释器命令行中,都import this
可以看到它)。
4
@GregHewgill:“ Pythonic”是一个非常常用的术语,基本上表示“惯用的Python”;高质量Python代码的爱好者会从风格上感到满意。
—
Carson63000
Python 非常清楚地包含了这个非常特定的功能(这实际上不是样式问题),那么为什么不通过任何合理的定义将其视为“ Pythonic”呢?据我所知,该语言没有任何功能被认为是“非Python语言的”。
—
Greg Hewgill
作为参考,该
—
Greg Hewgill
{}
功能已在Python 3.1中引入。促使添加此功能的增强功能是问题5237。Guido在该问题上有几条评论,包括“请继续并完成此操作。我很高兴此进展!” 如果不认为这是“ Pythonic”,我不知道是什么。
对于投票赞成结束这个问题的人们,我是否可以指出Pythonic是Python编码文化的重要组成部分,我认为编码文化是软件工程的重要组成部分,是软件工程的公认主题。这个网站。
—
Ghopper21
@Andrea-这正是我的第一个想法,但是很难说BDFL认为它不是Python风格的。在看到他的报价后,我又回头看了看Python的Zen,并认为这可能是“实用胜过纯度”的情况?讨论的基本原理(与Greg的答案联系在一起)是关于给代码编写者带来方便的。在任何情况下,使用字符串格式的最明确的方法实际上是
—
分歧
"{a}{b}".format(a=string_a, b=string_b)
编号。无论如何,那只是我的猜测和思考之间的