类型错误:str返回非字符串

2024-04-28 05:28:05 发布

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

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__函数使用何种语法才能获取对象的打印:

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

Tags: ornameselfnoneifinitdefyear
1条回答
网友
1楼 · 发布于 2024-04-28 05:28:05

方法返回元组:

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

逗号使它成为元组。

您需要加入这些值;我建议使用字符串格式:

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

相关问题 更多 >