我收到此代码的语法错误:
def __str__(self):
s= 'Patron("'+self.name+'","'+self.patron_id+'","['+ \
for book in self.borroweds:
s+=str(book) + ', '
if len(self.borroweds) != 0:
s= s[:-2]
s+='])'
return s
for book in self.borroweds:
^
SyntaxError: invalid syntax
>>>
我知道这是因为我有一个“\”但我把它放在那以便我可以继续编写我的代码
答案 0 :(得分:2)
反斜杠表示该行未结束,因此您的代码完全等同于
s = 'Patron("'+self.name+'","'+self.patron_id+'","['+ for book in self.borroweds:
在for
关键字处给出了语法错误,因为Python正在寻找一个表达式,该表达式在那里求值为一个字符串。你应该取出+
和反斜杠。您似乎很乐意简单地按如下方式初始化s
:
s = 'Patron("'+self.name+'","'+self.patron_id+'","['
然后让代码的后续行添加到字符串s
。
有关Python程序的行结构的详细信息,包括显式和隐式行连接的含义以及如何考虑反斜杠字符,请参阅this section of the Python reference manual。
答案 1 :(得分:0)
def __str__(self):
books = ', '.join(self.borroweds)
return 'Patron("{name}", "{id}", [{books}])'.format(name=self.name, id=self.patron_id, books=books)