繁体   English   中英

Python格式最佳实践

[英]Python Format Best Practices

我刚刚开始使用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?

任何想法或见解将非常感激。

谢谢!

我不认为(还)有任何实践被认为是“最好的”甚至是“共同的”,所以你会得到一堆意见(包括我的:-)。

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

如果格式字符串是一个文字,那么空格式la {}是最不突兀的,因此可能最终可读 - 除非你的格式字符串有“太多”,这当然是一种风格判断。

至少它是一个风格问题非常适合你每次定义或调用函数时所面对的那个问题 - 如果你只是为了可读性而将任何位置参数或参数“太多”,你应该将它们全部用于命名参数和参数,等等等。类似的考虑适用!

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

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

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

我知道这是一个老问题,但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中格式化字符串的最简单,更易读的方法。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM