10

プロパティとしてリストを含む 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

なんで?トピックのリストを繰り返し処理し、各トピックの各ビデオを印刷したいのですが、トピックごとにすべてのビデオを印刷しますか???

ここで何が起こっているのですか?

4

1 に答える 1