有没有办法用新的格式语法格式化函数调用中的字符串?例如:

"my request url was {0.get_full_path()}".format(request)

所以它调用函数get_full_path函数inside作为字符串,而不是format函数中的参数.

编辑:

"{0.full_name()} {0.full_last_name()} and my nick name is {0.full_nick_name()}".format(user)

这就是我想要避免的:

"{0} and {1} and my nick name is {2}".format(user.full_name(), user.full_last_name(), user.full_nick_name())

推荐答案

Python3.6添加了文字字符串插值,它是用f前缀编写的.见PEP 0498 -- Literal String Interpolation.

这样就可以写字了

>>> x = 'hello'
>>> s = f'{x}'
>>> print(s)
hello

应该注意的是,这些不是实际的字符串,而是每次计算为字符串的代码.在上述示例中,s将是str类型,其值为'hello'.您不能传递f字符串,因为在使用它之前,它将被计算为结果str(与str.format不同,但与其他所有字符串文字修饰符一样,例如r'hello'b'hello''''hello''').(PEP 501 -- General purpose string interpolation(当前延迟)表示一个字符串文字,它将计算为一个对象,该对象可以在以后进行替换.)

Python-3.x相关问答推荐

我有个问题继承遗产合伙人

如何将参数/值从测试方法传递给pytest的fixture函数?

如何使用魔杖扭曲图像

以特定方式重新排列 pandas 数据框的列

PyTest:尽管明确运行了测试,但是被标记为没有运行测试

有没有一种方法可以通过输入从 0 到 255 的 R、G 和 B 值来生成 RGB colored颜色 ,而无需使用 python 中的 matplotlib 模块?

考虑到Pandas 系列中的不同索引,如何正确估计两列的百分比变化? Python相关

判断 gekko 中的表达式

为什么最简单的流光示例会出错?

Python socket.error: [Errno 13] 权限被拒绝

Pythonic,自定义警告

pip install dryscrape 失败并显示错误:[Errno 2] 没有这样的文件或目录:'src/webkit_server'?

IronPython 3 支持?

判断 dict.items() 中的成员资格的时间复杂度是多少?

Python 3.5:async with导致 SyntaxError.为什么?

为什么 string.maketrans 在 Python 3.1 中不起作用?

为 Python 3 和 PyQt 构建可执行文件

谁能给我一个 Python 3 中标准输入和标准输出的快速教程?

如何使用已打开并使用登录凭据登录的浏览器

如何使用异步 for 循环遍历列表?