我正在尝试编写一个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程序员。看起来它应该很直接,但我显然错过了一些东西。
答案 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)