Question: Define a class named Point with an appropriate __init__ method. This class will require 2 arguments when an object of this type is created, x
Define a class named Point with an appropriate __init__ method. This class will require 2 arguments when an object of this type is created, x and y. Your class must have two attributes, x and y, which are set when a Point object is created.
Implement the __repr__ method for your class. This method returns exactly what you would need to type if you were to recreate this object.
Implement the __str__ method for your class. This method is intended to be more "human-readable" and simply returns the x and y values for the point like this: (x,y)
Implement the __lt__ method for your class. This will allow you to compare two Point objects to one another. Point 1 is less than Point 2 if Point 1's x coordinate is less than Point 2's x coordinate. If both x values are equal for two points being compared, then compare them based on their y values. For instance, (3,0) is less than (9,-1) because 3 is less than 9. (3,0) is also less than (3,10), since both x values are equal and 0 is less than 10.
Implement the __eq__ method for your class. This will allow you determine if two Point objects are equal to one another. Point 1 is equal to Point 2 if they both have the same value for x AND the same value for y.
Implement a magnitude method for your class that calculates and returns the magnitude of a point. The magnitude of a point is defined as the distance from the origin (0,0) to that point. Our friend, Pythagoras, developed a theory on how to do exactly this. The magnitude of a point, p, is given by the following formula:
|p|=x2+y2|p|=x2+y2
(2 points)
(worth 2 of these classes *rimshot*)
(2 points)
(2 points)
(2 points)
(5 points)
The doctests below can be used in a triple-quoted string directly following the line naming your Point class to test your class's functionality.
>>> p1 = Point(4, 3) >>> p1 Point(4, 3) >>> print(p1) (4, 3) >>> p1.magnitude() 5.0 >>> p2 = Point(1, 1) >>> p2.magnitude() 1.4142135623730951 >>> Point(0, 4) < Point(5, 2) True >>> Point(3, 0) < Point(3, 10) True >>> sorted([Point(6, 1), Point(5, 3), Point(5, 0)]) [Point(5, 0), Point(5, 3), Point(6, 1)] >>> Point(2, 4) == Point(2, 4) True
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
