TypeError:__str__返回非字符串

Mik*_*e.G -3 python eclipse iterator python-3.x

class Course(object):
    def __init__(self,cnum,name):
        self.name = name
        self.cnum = cnum
    def __str__(self):
        return 'Course:' , self.cnum  , self.name

class AssigendCourse(Course):
    def __init__(self,Course,dept,year,semester):
        self.name = Course.name
        self.cnum = Course.cnum
        if dept == 'SE' or dept == 'CE' or dept == 'CIE' or dept == 'ME':
            self.dept = dept
        else:
            self.dept = None
        if year >= 1 and year <= 4:
            self.year = year
        else:
            self.year = None
        if semester >= 1 and semester <= 3:
            self.semester = semester
        else:
            self.semester = None
    def __str__(self):
        return 'Course: ' , self.name , self.cnum
Run Code Online (Sandbox Code Playgroud)

导致这种类型的错误

TypeError: __str__ returned non-string (type tuple)
Run Code Online (Sandbox Code Playgroud)

我无法确定我需要使用哪种类型的语法__str__来获取func,以便在使用时获取对象的打印:

it = iter(db)
for i in it:
    print(i)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

你的__str__方法返回元组:

def __str__(self):
    return 'Course:' , self.cnum  , self.name
Run Code Online (Sandbox Code Playgroud)

逗号使它成为元组.

你需要加入这些价值观; 我建议字符串格式化:

def __str__(self):
    return 'Course: {} {}'.format(self.cnum, self.name)
Run Code Online (Sandbox Code Playgroud)