Skip to content

Commit

Permalink
Solution
Browse files Browse the repository at this point in the history
  • Loading branch information
v-nochka committed Jan 10, 2025
1 parent 0a92fab commit cf67184
Showing 1 changed file with 73 additions and 2 deletions.
75 changes: 73 additions & 2 deletions app/main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,74 @@
from typing import Union


class Distance:
# Write your code here
pass

def __init__(self, km: float) -> None:
self.km = km

def __str__(self) -> str:
return f"Distance: {self.km} kilometers."

def __repr__(self) -> str:
return f"Distance(km={self.km})"

def __add__(self, other: Union[float, int, "Distance"]) -> "Distance":
if isinstance(other, Distance):
return Distance(self.km + other.km)
if isinstance(other, (int, float)):
return Distance(self.km + other)
return NotImplemented

def __iadd__(self, other: Union[float, int, "Distance"]) -> "Distance":
if isinstance(other, Distance):
self.km += other.km
elif isinstance(other, (int, float)):
self.km += other
else:
return NotImplemented
return self

def __mul__(self, other: Union[float, int]) -> "Distance":
if isinstance(other, (int, float)):
return Distance(self.km * other)
return NotImplemented

def __truediv__(self, other: Union[float, int]) -> "Distance":
if isinstance(other, (int, float)):
return Distance(round(self.km / other, 2))
return NotImplemented

def __lt__(self, other: Union[float, int, "Distance"]) -> bool:
if isinstance(other, Distance):
return self.km < other.km
if isinstance(other, (int, float)):
return self.km < other
return NotImplemented

def __gt__(self, other: Union[float, int, "Distance"]) -> bool:
if isinstance(other, Distance):
return self.km > other.km
if isinstance(other, (int, float)):
return self.km > other
return NotImplemented

def __eq__(self, other: Union[float, int, "Distance"]) -> bool:
if isinstance(other, Distance):
return self.km == other.km
if isinstance(other, (int, float)):
return self.km == other
return NotImplemented

def __le__(self, other: Union[float, int, "Distance"]) -> bool:
if isinstance(other, Distance):
return self.km <= other.km
if isinstance(other, (int, float)):
return self.km <= other
return NotImplemented

def __ge__(self, other: Union[float, int, "Distance"]) -> bool:
if isinstance(other, Distance):
return self.km >= other.km
if isinstance(other, (int, float)):
return self.km >= other
return NotImplemented

0 comments on commit cf67184

Please sign in to comment.