python - 用 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
解决方案
在您的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)
现在你的代码应该更干净了。
推荐阅读
- php - 提交表单后更改重定向
- java - 为什么 .write 不将整数添加到文件中?爪哇
- c# - 如何修复while循环崩溃程序
- amazon-cloudformation - AWS CloudFormation 函数调用失败:Fn::ImportValue 不得依赖于任何资源、导入的值或 Fn::GetAZs
- c++ - 朋友基础功能可以访问子数据
- asp.net - 如何在显示 MsgBox 之前向用户显示更新的 ASP.NET 页面?
- javascript - json对象中的for循环
- sql - 使用 SELECT 语句更新列
- javascript - 将nodejs中的localhost作为servername工作
- python - NumPY:不明白如何对数组矩阵中的每个 n 值求和