如何修复此无效语法

2024-09-29 06:25:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到此代码的无效语法错误:

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
>>> 

我知道这是因为我有一个“\”,但我把它放了,这样我就可以继续写我的代码了


Tags: 代码nameinselfidforlenif
2条回答
def __str__(self):
    books = ', '.join(self.borroweds)
    return 'Patron("{name}", "{id}", [{books}])'.format(name=self.name, id=self.patron_id, books=books)

反斜杠表示行未结束,因此您的代码与

s = 'Patron("'+self.name+'","'+self.patron_id+'","['+ for book in self.borroweds:

这会在for关键字处出现语法错误,因为Python正在寻找一个计算结果为字符串的表达式。你应该去掉+和反斜杠。似乎您很乐意按如下方式初始化s

^{pr2}$

然后让代码的后续行添加到字符串s。在

有关Python程序的行结构的详细信息,包括显式和隐式行连接的含义,以及如何考虑反斜杠字符,请参见this section of the Python reference manual。在

相关问题 更多 >