class Rectangle:
def __init__(self,width,height):
self.width = width
self.height = height
def set_width(self,width):
self.width = width
def set_height(self,height):
self.height = height
def get_area(self):
return self.width * self.height
def get_perimeter(self):
return self.width*2 + self.height*2
def get_diagonal(self):
return (self.width ** 2 + self.height ** 2) ** .5
def get_picture(self):
picture = str()
if self.width >= 50 | self.height >= 50:
return "Too big for picture."
for height in range(self.height):
picture += "*"*self.width+"\n"
return picture
def __repr__(self):
return f"Rectangle(width={self.width},height={self.height})"
以及它的一个子类Square
class Square(Rectangle):
def __init__(self,length):
super().__init__(length,length)
self.length = length
def set_side(self,length)
self.length = length
def set_width(self,length)
self.length = length
def set_height(self,length)
self.length = length
def __repr__(self):
return f"Square(side={self.length})"
在这里,我每次想更改值时都调用super()。 init ()。
我想要的不是代替也在Square类中显式定义set_height和set_width,有没有一种方法可以通过调用set side来设置高度和宽度到长度,并且str repr也应该显示新的set侧? 另外,我觉得比我所做的事还有更好的方法。