Python 带单引号的f字符串

Python 带单引号的f字符串,python,f-string,Python,F String,在烧瓶教程中, 有一种语法我想理解 返回fPost'{self.title}','{self.dateposted}' 有人能帮我分解这条线吗 f字符串表示以字符串形式返回Post结果 “{self.title}”是一个字符串参数,因为 {}用于获取变量。 但是在上下文中self.title已经是一个字符串,为什么要使用“”? 我的解释正确吗?“在这里做什么?”? 我没有检查链接,但这只是返回一个字符串,该字符串将分解为这个 return "Post('" + self.ti

在烧瓶教程中, 有一种语法我想理解

返回fPost'{self.title}','{self.dateposted}'

有人能帮我分解这条线吗

f字符串表示以字符串形式返回Post结果 “{self.title}”是一个字符串参数,因为 {}用于获取变量。 但是在上下文中self.title已经是一个字符串,为什么要使用“”? 我的解释正确吗?“在这里做什么?”?
我没有检查链接,但这只是返回一个字符串,该字符串将分解为这个

return "Post('" + self.title + "', '" + self.dateposted + "')"
我不知道如何处理返回的字符串,但我假设它是在其他地方计算的

但f字符串所做的只是在字符串中嵌入变量或表达式

如果变量不是字符串,则首先将其转换为字符串

要分解您的示例,在fstring中,{}中的任何内容都会被嵌入。 因为'是单引号并且在大括号之外,所以它们也是字符串的一部分

假设self.title等于我的title,self.dateposted等于08-22-2020。返回的字符串将导致

"Post('My Title', '08-22-2020')"

如果使用此字符串调用exec,它将使用2个位置字符串参数调用Post。

在教程中,他为类的_repr___方法返回此值。 在对象上调用repr时调用此方法。在类上使用str或print时,如果尚未为其实现_str__方法,也会调用它

实现_repr______)方法的目的是帮助调试。 如果您试图在不定义_repr__的情况下打印对象,它会像这样打印出来,这没有帮助

单引号是用来装饰的,其实并不需要

另见:


您可能还对阅读Luciano Ramalho的Fluent Python感兴趣,因为它涵盖了这些方法,并提供了一些很好的示例,说明了除了许多其他Python智慧之外,如何使用它们

我不认为这是字符串的串联。它是在调用Post函数。它绝对不是在调用Post函数。正如@vasilsylakis提到的,Post是一个类,它返回一个_repr____;字符串。