Python 这个类中有什么语法错误?
我正在做一个项目,需要我使用str打印出答案。当我运行这段代码时,编译器通过指出返回语句给出语法错误。我很想得到帮助来解决这个问题 我试图删除返回代码周围的括号Python 这个类中有什么语法错误?,python,Python,我正在做一个项目,需要我使用str打印出答案。当我运行这段代码时,编译器通过指出返回语句给出语法错误。我很想得到帮助来解决这个问题 我试图删除返回代码周围的括号 import random class Movie: def __init__ (self, title, year, drname, cat, length): self.title = title self.year = year self.drname = drname self.cat = c
import random
class Movie:
def __init__ (self, title, year, drname, cat, length):
self.title = title
self.year = year
self.drname = drname
self.cat = cat
self.length = length
def __str__(self):
return (self.title + '('self.cat','+ self.year')' +'directed by ' + self.drname + ', length ' + self.length + 'minutes')
#Apollo 13 (Drama, 1995) directed by Ron Howard, length 140 minutes
#It should be printed out as shown above
mv1 = Movie("Apollo 13", 1995, 'Ron Howard', 'Drama', 140)
您的代码状态为self.cat',“+self.year,不带+
改为使用+self.cat+'、'+self.year+
也可以考虑类别和年份之间的空间。如果是,请使用以下方法:
'(' + self.cat + ', ' + self.year + ')'
此外,您的年份和长度需要转换为字符串,例如使用strself.length。只是一个小的语法错误,return语句中缺少加号
return (self.title + ' (' + self.cat + ', ' + self.year + ') ' + 'directed by ' + self.drname + ', length ' + self.length + ' minutes.')
这应该行。除了其他答案之外,我建议使用python 3.6引入的f-strings进行字符串格式化:
return f"{self.title} ({self.cat}, {self.year}) directed by {self.drname} , length {self.length} minutes"
您应该使用以下格式设置_str__的返回值: 您的代码、PEP8和工作:
class Movie:
def __init__(self, title, year, drname, cat, length):
self.title = title
self.year = year
self.drname = drname
self.cat = cat
self.length = length
def __str__(self):
return f"{self.title} ({self.cat}, {self.year}) directed by {self.drname}, length {self.length} minutes"
# Apollo 13 (Drama, 1995) directed by Ron Howard, length 140 minutes
# It should be printed out as shown above
mv1 = Movie("Apollo 13", 1995, 'Ron Howard', 'Drama', 140)
print(mv1)
输出:
Apollo 13 (Drama, 1995) directed by Ron Howard, length 140 minutes
谢谢你@Andrew Fan提醒我关于strself.length的事。现在我的程序运行得非常好!这绝对是应该做的,尤其是考虑到使用串联访问和转换的字段数量之多。Finswiller的回答应该包括如何做到这一点。始终阅读生成的完整回溯错误消息,如果不确定,请将其包含在问题中。回溯非常友好,并指出了错误语法的列。我不明白,请解释为什么第2行到第10行应该是类块的一部分-它们也需要缩进/空格。错误回溯解释了这一点,最好尝试复制粘贴代码并运行它。是的,你说得对,我现在就纠正了这一点,用应用程序编写代码片段并不方便。
Apollo 13 (Drama, 1995) directed by Ron Howard, length 140 minutes