- Read the guideline before start
- Follow Python magic methods if you stuck
Every day you have morning running. You want to store your result.
For easier calculating, comparison and printing your result write class
Distance.
Distance's __init__ method takes only
one argument km and saves it to self.km.
For Distance class you should implement such magic
methods:
__init__
distance = Distance(20) # distance.km == 20
__str__
distance = Distance(20)
print(distance) # "Distance: 20 kilometers."
__repr__
distance = Distance(20)
repr(distance) # "Distance(km=20)"
__add__
distance1 = Distance(20)
distance2 = Distance(30)
distance3 = distance1 + distance2
# isinstance(distance3, Distance) is True
# distance3.km == 50
distance1 = Distance(20)
distance2 = distance1 + 10
# isinstance(distance2, Distance) is True
# distance2.km == 30
# both variants ^ are possible
__iadd__
distance1 = Distance(20)
distance2 = Distance(30)
distance1 += distance2 # distance1.km is 50
distance = Distance(20)
distance += 30 # distance.km == 50
__mul__
distance1 = Distance(20)
distance2 = distance1 * 5
# isinstance(distance2, Distance) is True
# distance2.km == 100
__truediv__
distance1 = Distance(20)
distance2 = distance1 / 7
# isinstance(distance2, Distance) is True
# distance2.km == 2.85
# Note: rounded to 2 decimals
__lt__, __gt__, __eq__, __le__, __ge__
distance = Distance(50)
distance < Distance(60) # True # distance.km < 60 == True
distance > Distance(120) # False
distance == Distance(100) # False
distance <= Distance(49) # False
distance >= Distance(50) # True
distance < 60 # True # distance.km < 60 == True
distance > 120 # False
distance == 100 # False
distance <= 49 # False
distance >= 50 # True