トレンドビデオ
あなたはVevo社の新しいIT部長として採用されました。Vevoは世界をリードする音楽ビデオ提供会社です。同社は膨大な楽曲、映画、音楽ビデオのライブラリを持っています。しかし、データが整理されておらず、コンテンツをより良く分類・管理するためにあなたの助けを必要としています。
ここでの主な課題は、コンテンツを分類するための一連のクラスを定義することです。さらに、彼らはどのビデオがトレンドになっているかを知りたがっています。過去24時間で100万回以上の視聴があるビデオはトレンドと見なされます。
まず、属性
duration
とメソッドplay()
を持つクラスMultimedia
を作成します。次に、Multimedia
を継承する2つのクラス、Song
とMovie
を定義します。それぞれSong
にはartist
、Movie
にはdirector
といった固有の属性を持ちます。その後、Song
とMovie
の両方を継承するクラスMusicVideo
を作成し、このクラスには特定の属性であるview_count
とviews_last_24_hours
を追加します。クラス内で
__str__()
メソッドをオーバーライドしなければなりません。クラスのインスタンスがプリントされたとき、以下のように表示されるべきです:MusicVideo
の場合:"Music video title: [title], Artist: [artist], Director: [director], Duration: [duration] minutes, Total views: [viewcount], Views in last 24 hours: [viewslast24hours]."
Song
の場合:"Song title: [title], Artist: [artist], Duration: [duration] minutes."
Movie
の場合:"Movie title: [title], Director: [director], Duration: [duration] minutes."
MusicVideo
のis_trending()
メソッドは、以下をプリントすべきです:- "[title] by [artist] is trending."
- "[title] by [artist] is not trending."
入力 | 出力 |
multimedia=Multimedia(3.5); song=Song('Beatles', 'Let It Be', 4); movie=Movie('George Harrison', 'A Hard Days Night', 92); music_video=MusicVideo('Michael Jackson', 'Beat It', 'John Landis', 13.2, 1002000000, 1500000); print(music_video); print(song); print(movie); music_video.is_trending(); movie.play() | Music video title: Beat It, Artist: Michael Jackson, Director: John Landis, Duration: 13.2 minutes, Total views: 1002000000, Views in last 24 hours: 1500000.
Song title: Let It Be, Artist: Beatles, Duration: 4 minutes.
Movie title: A Hard Days Night, Director: George Harrison, Duration: 92 minutes.
Beat It by Michael Jackson is trending.
Playing media |
ヒント
多重継承を扱う際には、
super()
の使用を避けてみてください。多重継承に関するレッスンに戻って、__init__()
メソッド内での正しい初期化の方法を復習しましょう。Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB