Python 为什么只使用f字符串或字符串格式而不使用+;用于连接?

Python 为什么只使用f字符串或字符串格式而不使用+;用于连接?,python,python-3.x,concatenation,f-string,Python,Python 3.x,Concatenation,F String,我正在尝试学习python,并将其用于快速/肮脏的一次性脚本,我想知道为什么使用f字符串或字符串格式而不是仅仅使用“+”进行连接是最佳实践(或者甚至被认为是最佳实践) 例如 some_file_name = "abcd" file_name = some_file_name + ".yaml" file_name = f"{some_file_name}.yaml" file_name = "{}.yaml".format(some_file_name) 这里的最佳实践是什么?为什么不直接使用

我正在尝试学习python,并将其用于快速/肮脏的一次性脚本,我想知道为什么使用f字符串或字符串格式而不是仅仅使用“+”进行连接是最佳实践(或者甚至被认为是最佳实践)

例如

some_file_name = "abcd"
file_name = some_file_name + ".yaml"
file_name = f"{some_file_name}.yaml"
file_name = "{}.yaml".format(some_file_name)

这里的最佳实践是什么?为什么不直接使用“+”来连接变量和字符串呢?

如果
某些文件名
不是字符串,那么f字符串或格式方法就更容易使用。
+
在不同类型之间的行为方式上有更多的变量,并且提供的控制更少。只将内容格式化为字符串的情况很简单,但f-strings或
format()
允许许多详细的控件--填充、格式转换等。如果传递的类型需要在添加到字符串之前对其调用
str()
,则会出现错误,除非你使用一种格式化机制来实现这一点。这个链接可能会有所帮助……因此,如果你养成了使用
+
的习惯,有时它会对你有用,有时它不会,但是如果你养成了使用f字符串的习惯,它将非常灵活,你可以让它做你想做的事情。另外,
'{}-{}.yaml'.format(s1,s2)
f'{s1}-{s2}.yaml'
s1+“-”+s2+.yaml”
更有效,后者在计算每个
+
时创建多个临时
str
对象。