__init __()需要3个参数(给定1个)

时间:2013-10-08 10:10:49

标签: python

我今天刚刚开始学习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:功能 init 创建一个类Area,它有一个构造函数,它将高度指定为100,宽度指定为200.定义一个方法rectangle_area,它应该返回一个矩形区域和一个Area实例作为区域。打印矩形区域。将50添加到高度,将50添加到区域实例的宽度。然后打印矩形区域。

编辑3:让它们成为可选项:

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

1 个答案:

答案 0 :(得分:5)

  

功能__init__:创建一个类Area,其中包含一个构造函数,将height指定为100,将width指定为200.定义方法rectangle_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())