you are using so called old-style string formatting.
Here is comparison between old-style and str.format() method
https://pyformat.info/
And with 3.6+ came even better - f-strings
One recommendation would be to use f-strings or str.format() method
Another recommendation - you need 1 point (x an y), height and width of the rectangle. These are 4 arguments to __init__()
There is no need to add second pair of x and y coordinates. You face the risk that there is discrepancy between x, y, height, width and supplied second point. In other words - select to request one point (e.g. upper-left, lower-right, lower-left or upper-right) and having also height and width calculate rest 3
Here is comparison between old-style and str.format() method
https://pyformat.info/
And with 3.6+ came even better - f-strings
One recommendation would be to use f-strings or str.format() method
Another recommendation - you need 1 point (x an y), height and width of the rectangle. These are 4 arguments to __init__()
There is no need to add second pair of x and y coordinates. You face the risk that there is discrepancy between x, y, height, width and supplied second point. In other words - select to request one point (e.g. upper-left, lower-right, lower-left or upper-right) and having also height and width calculate rest 3
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs