如何在类Python中将列表显示为字符串?

时间:2018-02-10 14:04:30

标签: python string list class

到目前为止,我有以下代码。我想将unit1信息显示为字符串,但先决条件详细信息存储在列表中,我不太确定为什么它是空白而不是显示数学,Python

class The_Unit:

def __init__(self,code,name,prereq=[]):
    self.code = code
    self.name = name
    self.prereq =[]

def __repr__(self):
    return self.__str__()

def __str__(self):
    return  'Code: ' + self.code + \
            '\nName: ' + self.name + \
             '\nprerequisites: ' + '\n'.join((str(x) for x in self.prereq))





unit1 = The_Unit('11','coding',['math','python'])

print(unit1)
Code: 11
Name: coding
prerequisites: 

2 个答案:

答案 0 :(得分:0)

您将空列表分配给self.prereq。参数为prereq,因此您需要:

self.prereq = prereq

prereq = []表示在调用函数时可以省略该参数,然后self.prereq将是一个空列表。

答案 1 :(得分:0)

首先,您需要将传递的prereq分配给您的类变量。其次,使用.format()语句将有助于格式化如下:

class The_Unit:
    def __init__(self, code, name, prereq=[]):
        self.code = code
        self.name = name
        self.prereq = prereq

    def __repr__(self):
        return self.__str__()

    def __str__(self):
        return  'Code: {}\nName: {}\nprerequisites: {}'.format(self.code, self.name, ', '.join(self.prereq))

unit1 = The_Unit('11', 'coding', ['math', 'python'])

print(unit1)

这将打印:

Code: 11
Name: coding
prerequisites: math, python