我今天刚刚开始学习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?'
答案 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())