compare-method added to Vector class in lib.py#12448
Conversation
| else: | ||
| return math.acos(num / den) | ||
|
|
||
| def __eq__(self, vector: object) -> bool: |
There was a problem hiding this comment.
Could you move the method higher up in the file, before all the public methods? Having this one dunder method within all the public methods, rather than having it alongside all the other dunder methods, makes it harder to find.
| def __eq__(self, vector: object) -> bool: | ||
| """ | ||
| performs the comparison between two vectors | ||
| """ | ||
| if not isinstance(vector, Vector): | ||
| return NotImplemented |
There was a problem hiding this comment.
| def __eq__(self, vector: object) -> bool: | |
| """ | |
| performs the comparison between two vectors | |
| """ | |
| if not isinstance(vector, Vector): | |
| return NotImplemented | |
| def __eq__(self, vector: Vector) -> bool: | |
| """ | |
| performs the comparison between two vectors | |
| """ |
I don't think it makes sense to allow comparison with any object, only with other Vectors.
There was a problem hiding this comment.
I tried writing Vector insted of object but it gave me an error that saying: Argument 1 of "eq" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
This violates the Liskov substitution principle
Sorry for the inconvenience, I hadn't realized that |
|
ok, i went back to the previous version |
tianyizheng02
left a comment
There was a problem hiding this comment.
LGTM, thanks for your changes!
Describe your change:
Checklist: