首页 文章

TypeError:__str__返回非字符串

提问于
浏览
-3
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

导致这种类型的错误

TypeError: __str__ returned non-string (type tuple)

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

it = iter(db)
for i in it:
    print(i)

1 回答

  • 8

    您的 __str__ 方法返回 tuples

    def __str__(self):
        return 'Course:' , self.cnum  , self.name
    

    逗号使它成为元组 .

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

    def __str__(self):
        return 'Course: {} {}'.format(self.cnum, self.name)
    

相关问题