0

我今天刚开始学习 Python,所以如果这是一个简单的问题,我很抱歉。我花了最后半个小时试图纠正以下代码。

class Area:

    def __init__(self,width,height):
        self.width = width
        self.height = height

    def rectangle_area(self):
        area = self.width * self.height
        return area

area = Area(200, 100)
print area.rectangle_area()
area = Area(250, 150)
print area.rectangle_area()

每次我运行它,我得到输出 20000 和 37500,这很好,但是我得到:

'__init__() takes exactly 3 arguments (1 given)'

确切的输出:

20000
37500
=> None
'__init__() takes exactly 3 arguments (1 given)'

任何人都可以看到此代码中的错误吗?

编辑:这是来自http://www.learnstreet.com/assignments/525231f376b99c634f000021/practice/5215e57f76b99c0f52000095的问题 3

编辑2:问题(复制粘贴):

3:函数初始化 创建一个类Area,它有一个构造函数,将高度指定为100,宽度指定为200。定义一个方法rectangle_area,它应该返回一个矩形的面积和一个Area的实例作为面积。打印矩形的面积。将高度加 50,将区域实例的宽度加 50。然后打印矩形的面积。

编辑 3:使它们成为可选的给出:

20000
37500
=> None
'Have you created two instances named area.height and area.width?'
4

1 回答 1

5

功能__init__:创建一个类Area,该类的构造函数将分配height为 100 和width200。定义一个方法,该方法rectangle_area应返回矩形的面积和 Area 的实例作为面积。打印矩形的面积。将 50 添加到区域实例height,并将 50添加到width区域实例。然后打印矩形的面积。

对我来说,这听起来像这样,尽管看起来毫无用处:

class Area:
    def __init__ (self):
        self.width = 200
        self.height = 100
    def rectangle_area (self):
        return self.width * self.height

x = Area()
print(x.rectangle_area())
x.width += 50
x.height += 50
print(x.rectangle_area())
于 2013-10-08T10:20:03.753 回答