我在 Python 编程课上有一个实验作业,但遇到了一些麻烦。我们的导师给了我们源代码 GeometricObject.py 作为参考。
class GeometricObject(object):
def __init__(self, color = "white", filled = True):
self.color = color
self.filled = filled
def getColor(self):
return self.color
def setColor(self, color):
self.color = color
def isFilled(self):
return self.filled
def setFilled(self, filled):
self.filled = filled
def __str__(self):
return "color: " + self.color + \
" and filled: " + str(self.filled)
现在我应该使用这个类来创建一个将这些信息应用于不同对象的子类。我必须创建一个类来计算圆形和三角形的面积和周长。
我无法理解何时需要从源代码复制和粘贴或不需要。这是我制作的第一节课,涉及一个圆圈。简单的问题:它的命名是否正确?该类是否应称为 GeometricObject(circle):???
import math
class GeometricObject(object):
'''Class using a Circle'''
def __init__(self, color = "white", filled = True):
self.radius = 1
self.color = color
self.filled = filled
def getColor(self):
return self.Color
def setColor(self, color):
self.color = color
def isFilled(self):
return self.filled
def setFilled(self, filled):
self.filled = filled
def getArea(self):
self.area = math.pi(self.radius)**2
return self.area
def getPerimeter(self):
r = radius
self.perimeter = 2(math.pi)(r)
return self.perimeter
def __str__(self):
return "color: " + self.color + \
" and filled: " + str(self.filled)
注意:在 def_str_方法中,它应该打印 Circle: radius = 3 color: red andfilled: True" 尽管它之前声明将默认值设置为 1,颜色:白色。我很困惑这个。
这就是它的要点。我希望我的编码到目前为止是正确的!
然后我必须为 Triangle 类做同样的事情,但我很确定它是相似的。
class GeometricObject(object):
'''Class using a Triangle'''
def __init__(self, color = "white", filled = True):
self.side1 = 1
self.side2 = 1
self.side3 = 1
def getArea(self):
s = (self.side1 + self.side2 + self.side3)/2
area = math.sqrt(s(s - self.side1)(s - self.side2)(s - self.side3))
return area
def getPerimeter(self)
perimeter = self.side1 +self.side2 + self.side3
return perimeter
def __str__(self):
return "color: " + self.color + \
" and filled: " + str(self.filled)
def getColor(self):
return self.Color
def setColor(self, color):
self.color = color
def isFilled(self):
return self.filled
def setFilled(self, filled):
self.filled = filled
所以我想我的主要问题是:+我应该一遍又一遍地从 GeometricObject() 复制粘贴源代码,还是已经存在?+字符串方法让我感到困惑,因为它要求的值与以前指定的不同。+代码。我想我正确地实现了每个的面积和周长公式?
提前致谢。任何帮助是极大的赞赏!!