プロパティとしてリストを含む python オブジェクトのリストを印刷しようとしていますが、予期しない結果がいくつかあります。
ここに私のコードがあります:
class video(object):
name = ''
url = ''
class topic(object):
topicName = ''
listOfVideo = []
def addVideo(self,videoToAdd):
self.listOfVideo.append(videoToAdd)
def getTopic(self):
return self.topicName
def getListOfVideo(self):
return self.listOfVideo
topic1 = topic()
topic1.topicName = 'topic1'
video1 = video()
video1.name = 'VideoName1'
video1.url = 'VideoURL1'
video2 = video()
video2.name = 'VideoName2'
video2.url = 'VideoURL2'
topic1.addVideo(video1)
topic1.addVideo(video2)
topic2 = topic()
topic2.topicName = 'topic2'
video3 = video()
video3.name = 'VideoName3'
video3.url = 'VideoURL3'
video4 = video()
video4.name = 'VideoName4'
video4.url = 'VideoURL4'
topic2.addVideo(video3)
topic2.addVideo(video4)
topicsList = []
topicsList.append(topic1)
topicsList.append(topic2)
for topicCurrent in topicsList:
print(topicCurrent.topicName)
for video in topicCurrent.getListOfVideo():
print(video.name)
print(video.url)
私が期待するのはこれです:
トピック1
ビデオ名1
動画URL1
ビデオ名2
動画URL2
トピック2
ビデオ名3
動画URL3
ビデオ名4
動画URL4
しかし、私が実際に得るのはこれです:
トピック1
ビデオ名1
動画URL1
ビデオ名2
動画URL2
ビデオ名3
動画URL3
ビデオ名4
動画URL4
トピック2
ビデオ名1
動画URL1
ビデオ名2
動画URL2
ビデオ名3
動画URL3
ビデオ名4
動画URL4
なんで?トピックのリストを繰り返し処理し、各トピックの各ビデオを印刷したいのですが、トピックごとにすべてのビデオを印刷しますか???
ここで何が起こっているのですか?