-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solution #1457
base: master
Are you sure you want to change the base?
Solution #1457
Conversation
app/main.py
Outdated
# Write your code here | ||
pass | ||
|
||
def __init__(self, km: int) -> None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
km can also be float
here
app/main.py
Outdated
def __repr__(self) -> str: | ||
return f"Distance(km={self.km})" | ||
|
||
def __add__(self, other: int) -> "Distance": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import annotation from future
to give annotation for classes without quotes
other
can also be float
or Disntance
types here. Check this mistake in all methods
app/main.py
Outdated
|
||
def __mul__(self, other: int) -> "Distance": | ||
if isinstance(other, (int, float)): | ||
return Distance(self.km * other) | ||
return NotImplemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
other
can not be of type Distance
in this method, because if you multiply km * km you get square km
app/main.py
Outdated
def __truediv__(self, other: int) -> "Distance": | ||
if isinstance(other, (int, float)): | ||
return Distance(round(self.km / other, 2)) | ||
return NotImplemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
other
can not be of type Distance
in this method
app/main.py
Outdated
def __lt__(self, other: int) -> bool: | ||
if isinstance(other, Distance): | ||
return self.km < other.km | ||
elif isinstance(other, (int, float)): | ||
return self.km < other | ||
return NotImplemented | ||
|
||
def __gt__(self, other: int) -> bool: | ||
if isinstance(other, Distance): | ||
return self.km > other.km | ||
elif isinstance(other, (int, float)): | ||
return self.km > other | ||
return NotImplemented | ||
|
||
def __eq__(self, other: int) -> bool: | ||
if isinstance(other, Distance): | ||
return self.km == other.km | ||
elif isinstance(other, (int, float)): | ||
return self.km == other | ||
return NotImplemented |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We expect only int, float, or Distance types here. That is, you need to do only 1 check, if it is not Distance, it will be float or int
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏻
No description provided.