如何在Python

时间:2016-07-07 02:22:46

标签: python

我正在尝试编写一个Python程序,它将初始化一个列表并将任何类型的对象添加到列表中。我相信我已经在__init__方法中正确初始化了列表,但我似乎无法使用.join()方法将任何对象传递给它。我选择了.join()方法,因为.append()似乎没有处理对象类型str

class Bag(object):
    '''This is where the docstring goes.'''

    def __init__(self):
        self.contents = []

    def put_in_bag(self, contents):
        contents.join(contents)

    def __str__(self):
        return "The bag has: " + str(self.contents)

if __name__ == "__main__":
    bag1 = Bag()
    bag1.put_in_bag("comb")
    bag1.put_in_bag("candy bar")
    print bag1

我收到以下输出:

The bag has: []

这是大学课程的作业,我是一个没有经验的Python程序员。看起来它应该很直接,但我显然错过了一些东西。

1 个答案:

答案 0 :(得分:1)

您没有在contents方法中引用对象实例self上的put_in_bag;相反,你试图将参数加入到参数本身而不是触及实例。此外,join不是list上的Python方法。由于您要添加单个元素,因此需要append。如果要添加整个列表,请使用+=

试试这个:

class Bag(object):
    '''This is where the docstring goes.'''

    def __init__(self):
        self.contents = []

    def put_in_bag(self, contents):
        self.contents.append(contents)

    def __str__(self):
        return "The bag has: " + str(self.contents)

if __name__ == "__main__":
    bag1 = Bag()
    bag1.put_in_bag("comb")
    bag1.put_in_bag("candy bar")
    print(bag1)