class Movie:
def __init__(self, name: str, year: int, rating: float):
self.name = name
self.year = year
self.rating = rating
self.actors = []
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
if value == '':
raise ValueError("Name cannot be an empty string!")
self.__name = value
@property
def year(self):
return self.__year
@year.setter
def year(self, value):
if value < 1887:
raise ValueError("Year is not valid!")
self.__year = value
def add_actor(self, name: str):
if name not in self.actors:
self.actors.append(name)
else:
return f"{name} is already added in the list of actors!"
def __gt__(self, other):
if self.rating > other.rating:
return f'"{self.name}" is better than "{other.name}"'
else:
return f'"{other.name}" is better than "{self.name}"'
def __repr__(self):
return f"Name: {self.name}\n" \
f"Year of Release: {self.year}\n" \
f"Rating: {self.rating:.2f}\n" \
f"Cast: {', '.join(self.actors)}"