【发布时间】:2014-11-29 14:03:06
【问题描述】:
我试图弄清楚如何将两个对象“合并”在一起。我的目标是合并两个 Album 对象(代码如下)。我需要能够合并多个Album 对象的tracks 参数(它们是列表),前提是Album 对象的'title' 参数相同。
基本上,如果我有一个Album 对象,其中tracks 参数的长度为1,另一个专辑对象tracks 参数的长度也为1,则新的或更新的单数Album对象需要有一个长度为 2 的 tracks 参数。
我已经发布了我的代码来展示对象是如何定义的。
提前致谢!
编辑:由于tracks 参数列表中的每个元素都是歌曲名称,我想保留相同的元素并将它们放在新的或更新的tracks 参数中。我需要将每个对象的确切元素放入这个“新”对象中,而不是仅仅改变元素的数量。
class Album(object) :
def __init__(self, artist, title, tracks = None) :
tracks = []
self.artist = artist
self.title = title
self.tracks = tracks
def add_track(self, track) :
self.track = track
(self.tracks).append(track)
print "The track %s was added." % (track)
def __str__(self) :
if len(self.tracks) == 1 :
return "Artist: %s, Album: %s [" % (self.artist, self.title) + "1 Track]"
return "Artist: %s, Album: %s [" % (self.artist, self.title) + str(len(self.tracks)) + " Tracks]"
【问题讨论】:
-
have the exact elements from each object put into this 'new' object.是什么意思? -
@Kasra 如果专辑对象 1 的
tracks列表是['one']并且专辑对象 2 的“曲目”列表是['two'],那么最终的tracks列表将是['one', 'two']。我输入这些信息是因为我不想只添加两个列表的长度,我希望将元素添加到一个新列表中。
标签: python class object merge arguments