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
相关产品推荐
相关产品推荐

