【问题标题】:Based on an input, how can I classify elements of a list into objects for classes?基于输入,如何将列表的元素分类为类的对象?
【发布时间】:2021-03-03 01:48:08
【问题描述】:

我有代码:

class tune:
    def __init__(self, title, artist, duration):
        self.title = title
        self.artist = artist
        self.duration = duration
class play:

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

    def add(self, song):
    self.tracks.append[song]
    
    def look(self,song):
    print (self.artist,"-",self.title)

n=input() #number of input
song=play()
for i in range(n):
    x = input().split(',')
    song.title=x[1]
    song.artist=x[0]
    song.duration=x[2]
song.look()

对于每个输入,我必须将其设为属于其类的对象并将其添加到列表中。当调用 song.look 时,它应该打印出列表中的标题和艺术家。例如,如果输入是:

2
Artic Monkeys,R U Mine?,324
Artic Monkeys,Do I wanna know?,253

程序执行时应该输出:

Artic Monkeys - R U Mine?
Artic Monkeys - Do I wanna know?

我不知道我是否分别将输入附加到它的对象,我做错了什么吗?

【问题讨论】:

    标签: python-3.x list class


    【解决方案1】:

    您没有提供太多关于问题所在的上下文,但查看您的代码有点明显。试试这个:

    class Tune:
    
        def __init__(self, title, artist, duration):
            self.title = title
            self.artist = artist
            self.duration = duration
    
    class Play:
    
        def __init__(self):
            self.tracks = []
    
        def add(self, song):
            self.tracks.append(song)
        
        def look(self, song):
            for song in self.tracks:
                print(f"{song.artist} - {song.title}")
    
    n = int(input("Enter the number of tracks to add"))
    playlist = Play()
    
    for i in range(n):
        title, artist, duration = input("Enter the title, artist, and duration of a track").split(',')
        song = Tune(title, artist, duration)
        playlist.add(song)
    
    playlist.look()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2021-03-08
      • 2016-04-28
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多