Knowee
Questions
Features
Study Tools

Write a class Rectangle that defines a rectangle by: (based on 5-rectangle.py)Private instance attribute: width:property def width(self): to retrieve itproperty setter def width(self, value): to set it:width must be an integer, otherwise raise a TypeError exception with the message width must be an integerif width is less than 0, raise a ValueError exception with the message width must be >= 0Private instance attribute: height:property def height(self): to retrieve itproperty setter def height(self, value): to set it:height must be an integer, otherwise raise a TypeError exception with the message height must be an integerif height is less than 0, raise a ValueError exception with the message height must be >= 0Public class attribute number_of_instances:Initialized to 0Incremented during each new instance instantiationDecremented during each instance deletionInstantiation with optional width and height: def __init__(self, width=0, height=0):Public instance method: def area(self): that returns the rectangle areaPublic instance method: def perimeter(self): that returns the rectangle perimeter:if width or height is equal to 0, perimeter has to be equal to 0print() and str() should print the rectangle with the character #:if width or height is equal to 0, return an empty stringrepr() should return a string representation of the rectangle to be able to recreate a new instance by using eval()Print the message Bye rectangle... (... being 3 dots not ellipsis) when an instance of Rectangle is deletedYou are not allowed to import any module

Question

Write a class Rectangle that defines a rectangle by: (based on 5-rectangle.py)Private instance attribute: width:property def width(self): to retrieve itproperty setter def width(self, value): to set it:width must be an integer, otherwise raise a TypeError exception with the message width must be an integerif width is less than 0, raise a ValueError exception with the message width must be >= 0Private instance attribute: height:property def height(self): to retrieve itproperty setter def height(self, value): to set it:height must be an integer, otherwise raise a TypeError exception with the message height must be an integerif height is less than 0, raise a ValueError exception with the message height must be >= 0Public class attribute number_of_instances:Initialized to 0Incremented during each new instance instantiationDecremented during each instance deletionInstantiation with optional width and height: def init(self, width=0, height=0):Public instance method: def area(self): that returns the rectangle areaPublic instance method: def perimeter(self): that returns the rectangle perimeter:if width or height is equal to 0, perimeter has to be equal to 0print() and str() should print the rectangle with the character #:if width or height is equal to 0, return an empty stringrepr() should return a string representation of the rectangle to be able to recreate a new instance by using eval()Print the message Bye rectangle... (... being 3 dots not ellipsis) when an instance of Rectangle is deletedYou are not allowed to import any module

...expand
🧐 Not the exact question you are looking for?Go ask a question

Solution

Here is the Python code for the Rectangle class as per your requirements:

class Rectangle:
    number_of_instances = 0

    def __init__(self, width=0, height=0):
        self.width = width
        self.height = height
        Rectangle.number_of_instances += 1

    @property
    def width(self):
        return self.__width

    @width.setter
    def width(self, value):
        if not isinstance(value, int):
            raise TypeError("width must be an integer")
        if value < 0:
            raise ValueError("width must be >= 0")
        self.__width = value

    @property
    def height(self):
        return self.__height

    @height.setter
    def height(self, value):
        if not isinstance(value, int):
            raise TypeError("height must be an integer")
        if value < 0:
            raise ValueError("height must be >= 0")
        self.__height = value

    def area(self):
        return self.__width * self.__height

    def perimeter(self):
        if self.__width == 0 or self.__height == 0:
            return 0
        return 2 * (self.__width + self.__height)

    def __str__(self):
        if self.__width == 0 or self.__height == 0:
            return ""
        return (('#' * self.__width + '\n') * self.__height)[:-1]

    def __repr__(self):
        return "Rectangle({}, {})".format(self.__width, self.__height)

    def __del__(self):
        print("Bye rectangle...")
        Rectangle.number_of_instances -= 1

This class has private instance attributes width and height with their respective property getters and setters. It also has a public class attribute number_of_instances which is incremented during each new instance instantiation and decremented during each instance deletion. The class also has methods to calculate the area and perimeter of the rectangle. The __str__ method returns a string representation of the rectangle using the '#' character and the __repr__ method returns a string representation of the rectangle that can be used with eval() to create a new instance. The __del__ method prints a message when an instance is deleted.

This problem has been solved

Similar Questions

Write a Rectangle class in Python language, allowing you to build a rectangle with length and width attributes.

class Rectangle: def __init__(self, width, height): self.width = width self.height = height def calculate_area(self): return self.width * self.heightWrite the definition of a class Square that:#1 inherits from the class Rectangle,#2 adds a method called calculate_perimeter that calculates and returns the square's perimeter#3 overrides the __str__ method to print out the square's area and perimeter~.5 point for the class definition~.5 for method parameters ~1 point for the Inheritance ~1 point for the new method~1 point for the overrideclass Square(Rectangle): def calculate_perimeter(self): return self.width*4 def _repr_(self): result = "Area=" + str(self.width*self.height) result += "Perimeter="+ str(self.width*4) return result

Implement a Class for a RectangleCreate a class Rectangle with attributes for length and width.Implement methods to calculate the area and perimeter of the rectangle.Ensure that the length and width are always positive.Constraints:NAExample:Sample Input:5.06.0Sample Output:Area: 30Perimeter: 22 Explanation:output is the area and perimeter of rectangle through given inputs respectively.

Question 19What is the height of the rectangle in the class Rectangle?class Rectangle(object): def __init__(self,width=2,height =3,color='r'): self.height=height self.width=width self.color=color def drawRectangle(self): import matplotlib.pyplot as plt plt.gca().add_patch(plt.Rectangle((0, 0),self.width, self.height ,fc=self.color)) plt.axis('scaled') plt.show()1 point320

Create a method display() that display the length, width, perimeter and area of an object created using an instantiation on rectangle class.

1/2

Upgrade your grade with Knowee

Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.