首页 > 解决方案 > 用 Python 构造矩形

问题描述

有没有办法让 area() 引用 check()?目前,check() 的代码在 area() 中是相同的。

class Rectangle:
    def __init__(self, x1, y1, x2, y2):
        self.x1 = x1
        self.x2 = x2
        self.y1 = y1
        self.y2 = y2

    def check(self): #Checking this rectangle 
        if abs(self.x1-self.x2) == 0 or abs(self.y1-self.y2)==0:
            return False
        else :
            return True

    def area(self): #Calculating width
        if abs(self.x1-self.x2) == 0 or abs(self.y1-self.y2)==0:
            return False
        else : 
            area = abs(self.x1-self.x2)*abs(self.y1-self.y2)
            return area

标签: pythonclassmethodsrectangles

解决方案


在您的check(self)方法中,您不需要任何 if 或abs()。你可以这样做:

def check(self):
    return self.x1 != self.x2 and self.y1 != self.y2

关于该area(self)方法,您可以这样做:

def area(self):
    if not self.check():
        return False
    else:
        return abs(self.x1-self.x2)*abs(self.y1-self.y2)

现在你的代码应该更干净了。


推荐阅读