You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类的__repr__方法中f-string出现SyntaxError问题求助

语法错误原因解析

你的代码:

class Book:
    all = []
    def __init__(self, ISBN, title, subject, publisher, language, number_of_pages):
        self.__ISBN = ISBN
        self.__title = title
        self.__subject = subject
        self.__publisher = publisher
        self.__language = language
        self.__number_of_pages = number_of_pages
        self.__authors = []

        Book.all.append(self)

    def __repr__(self):
        return f"Title {self.__title} Subject {self.__subject}"

b = Book(23498723,"this","fiction","penguin","en",196)

运行时出现的错误:

return f"Title {self.__title} Subject {self.__subject}"
                                                          ^
SyntaxError: invalid syntax

错误原因

问题出在代码里的"——这是HTML的双引号转义字符,但Python无法识别它。

Python中字符串的边界需要用原生双引号"或单引号'标识,你用"替代正常引号后,Python会把它当成普通字符串内容,导致f-string的结构完全混乱:它找不到正确的引号来闭合字符串,因此抛出语法错误。

修复后的代码

把所有"替换成原生双引号"即可:

class Book:
    all = []
    def __init__(self, ISBN, title, subject, publisher, language, number_of_pages):
        self.__ISBN = ISBN
        self.__title = title
        self.__subject = subject
        self.__publisher = publisher
        self.__language = language
        self.__number_of_pages = number_of_pages
        self.__authors = []

        Book.all.append(self)

    def __repr__(self):
        return f"Title {self.__title} Subject {self.__subject}"

b = Book(23498723,"this","fiction","penguin","en",196)

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:27:07