在 Python 3.5+ 中将格式字符串作为关键字参数传递的替代方法

Posted

技术标签:

【中文标题】在 Python 3.5+ 中将格式字符串作为关键字参数传递的替代方法【英文标题】:Alternative to passing a format string as keyword argument in Python 3.5+ 【发布时间】:2018-12-04 23:53:22 【问题描述】:

在 Python 3.5 中,已弃用在 str.format 中使用关键字参数:

"Hi s".format(s="world")

来自string docs:

自 3.5 版起已弃用:已弃用将格式字符串作为关键字参数 format_string 传递。

Python 3.5+ 中的最佳替代方案是什么?

【问题讨论】:

请修复弃用通知链接 【参考方案1】:

弃用是关于string.Formatter 而不是str.Formatter

Source:

不推荐将格式字符串作为关键字参数format_string 传递给string.Formatter 类的format() 方法。

您可以在str.format 中使用,但不能在string.Formatter 中使用

【讨论】:

感谢您的澄清 - 我误解了弃用警告。所以我想继续使用"Hi s".format(s="world") 可以吗? @joshlk,是的,没关系。【参考方案2】:

或者使用fstrings:

name = "Bob"
hello = f"Hello name"
print (hello)

输出:

Hello Bob

【讨论】:

【参考方案3】:

试试这个

name = "john"
hello = "GoodMorning %s" %(name,)
print (hello)

【讨论】:

以上是关于在 Python 3.5+ 中将格式字符串作为关键字参数传递的替代方法的主要内容,如果未能解决你的问题,请参考以下文章

3.5 Go语言中将函数作为值使用

在 conda 中将 python 从 3.5 更新到 3.6

Python练习题3.5字符转换

如何在 .NET 2.0/3.5 中将(字符串)消息从一个线程异步排队到另一个线程?

在python中将长数字格式化为字符串

如何在python中将字符串日期转换为日期时间格式? [复制]