所以我需要找到矩形的区域。我必须在Rectangle类中添加一个名为“CalcArea()”的方法,该方法将宽度*高度相乘。我不知道如何做到这一点,我迷失了这本书并没有解释如何做到这一点。这是我的代码:
class Point():
x = 0.0
y = 0.0
def __init__(self, x, y):
self.x = x
self.y = y
print("Point Constructor")
def ToString(self):
return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}"
class Ellipse(Point):
radiusV = 0.0
radiusH = 0.0
def __init__(self, x, y, radiusV, radiusH):
super().__init__(x,y)
self.radiusV = radiusV
self.radiusH = radiusH
print("Ellipse Constructor")
def ToString(self):
return super().ToString() + \
",{Radius: Vertical = " + str(self.radiusV) + ", Radius: Horizontal = " + str(self.radiusH) + "}"
p = Point(50,50)
print(p.ToString())
e = Ellipse(80,80,60,80)
print(e.ToString())
class Size():
width = 0.0
height = 0.0
def __init__(self, width, height):
self.width = width
self.height = height
print ("Size Constructor")
def ToString(self):
return "{Width = " + str(self.width) + \
", Height = " + str(self.height) + "}"
class Rectangle(Point, Size):
area = 0.0
def __init__(self, x, y, width, height):
Point.__init__(self,x,y)
Size.__init__(self,width,height)
print("Rectangle Constructor")
def ToString(self):
return Point.ToString(self) + "," + Size.ToString(self) +
s = Size (80,70)
print(s.ToString())
r = Rectangle(200,250,40,50)
print(r.ToString())
答案 0 :(得分:2)
在Rectangle
课程中使用以下方法
def calcArea(self):
return self.width * self.height
要打印该区域,只需致电
print mRectangle.calcArea()
其中mRectangle
是Rectangle
类的实例。
self.width
和self.height
可供您使用,因为Rectangle
继承自Size
类,Size
包含实例变量width
和{{} 1}}在其构造函数中正确设置。由于height
是Rectangle
的子类,因此可以使用这些值。
此外,您在大小课程中的Size
和width = 0
可能无法完全按照您的想法行事。它们是Python中的静态或类变量,与height = 0
和self.width
完全不同以下是一个示例
self.height
在python中,您可以使用语法>>> class MyClass():
... a = 0
... def __init__(self):
... self.a = 5
... def echo(self):
... print MyClass.a, self.a
...
>>> instance = MyClass()
>>> instance.echo()
0 5
>>> instance.a
5
>>> MyClass.a
0
>>>
访问类或静态变量,并且可以在不创建该类对象的情况下访问它们。其中,只能使用类的实例调用实例变量。