MovieRatings_test/movie.py
2026-06-22 12:21:36 -03:00

47 lines
1.5 KiB
Python

import string
from dataclasses import dataclass
from media import *
class Movie(Media):
def __init__(self, title, year, parental_rating, rating):
self.parental_rating = parental_rating
self.rating = rating
super().__init__(title, year)
def movie_ratings(self, title, year, parental_rating, rating, imdb_rating):
self.title = title
self.year = year
self.parental_rating = parental_rating
self.rating = imdb_rating * 10
def __eq__(self, obj):
return (isinstance(obj, Movie) and
self.title == obj.title and
self.year == obj.year and
self.parental_rating == obj.parental_rating and
self.rating == obj.rating)
def compare_to(self, other):
if other is None:
return 1
elif self.rating > other.rating:
return 1
elif self.rating < other.rating:
return -1
else:
return 0
# Here if I didn't use total_ordering, I would need to complete the logic.
# I think it will work exactly as your CompareTo logic.
def __hash__(self):
return hash((self.title, self.year, self.parental_rating, self.rating))
def __str__(self):
return f"Movie: {self.title}, {self.year}, Parental Rating: {self.parental_rating}, IMDB Rating: {round(self.rating / 10, 1)}"
def print_details(self):
print(f"Movie: {self.title}, {self.year}, Parental Rating: {self.parental_rating}, IMDB Rating: {round(self.rating / 10, 1)}")