Python格式最佳实践

时间:2015-01-29 00:19:01

标签: python format

我正在加速使用Python,并对在字符串上使用.format的最佳做法(或至少是常见做法)提出疑问。

我的问题主要在于您何时使用空白大括号而不是索引号与名称。

例如,如果您想要在字符串中包含一个变量,那么您会做什么?

print "I {} Stack Overflow".format(var)
print "I {0} Stack Overflow".format(var)
print "I {verb} Stack Overflow".format(verb = var)

如果您想要包含多个变量,这会改变吗?也许可以包含{}用于单个var,但从不用于多个vars?

非常感谢任何想法或见解。

谢谢!

4 个答案:

答案 0 :(得分:5)

我不认为(还)有任何实践建立为"最好"或者甚至作为"普通",所以你会得到一堆意见(包括我的: - )。

我认为当你的格式字符串是变量时(例如来自数据库或配置文件,取决于用户选择的语言等等),{named} curlies是要走的路,因为它们允许您选择要格式化的哪个(命名)参数,顺序,可能重复它们等等,同时保持可读性。

如果格式字符串是文字字符串,则空格式la {}最不突兀,因此可能最终可读 - 除非您的格式字符串有太多"他们当然是一种风格判断。

至少它是一个风格问题,非常适合每次定义或调用函数时所面对的问题 - 任何位置参数或参数如何过多"为了便于阅读,您是否应该将全体猪用于命名参数和参数等,等等。类似的考虑适用!

答案 1 :(得分:3)

print“I {} Stack Overflow。”。format(var)是正确的方法。

如果您需要多个变量,您只需放置更多花括号并添加以逗号分隔的var名称。

print "I {} Stack Overflow. It is a great {} {}!".format(var, var1, var3)

答案 2 :(得分:2)

我知道这是一个老问题,但Python 3.6带来了非常酷的字符串格式,称为" f-strings"。它类似于Javascript。这是一个简单的例子:

name = "John"
age = 25

print(f"My name is {name} and I am {age} years old.")

它仅适用于Python 3.6及更高版本,但我认为它是用Python格式化字符串的最简单,最易读的方法。

答案 3 :(得分:1)

对一个或两个变量使用空括号是可以的。我建议使用命名替换:

  • 了解更多变数
  • 在更换字符串难以阅读的情况下
  • 重复注入var时。