'Rectangle'对象没有属性'width'

时间:2014-03-29 02:48:17

标签: python class

所以我刚刚开始使用python的类部分,并且我已经构建了一个我的教科书要求我编写的类和主程序。它看起来不错,但我一直收到一个错误,说我的班级没有这个特定的属性,这很奇怪,因为它应该。现在这只是一个简单的Rectangle,找到周边和区域程序。所以这不是太复杂。但也许你们可以看到我做不到的东西。

这是我班级的样子:

class Rectangle:
    def __init__(self, length = 1, width = 1):
        self.length = length
        self.width = width

    def setWidth(self, width):
        self.width = width

    def setLength(self, length):
        self.length = length

    def getPerimeter(self):
        return (2 * self.length) + (2 * self.width)

    def getArea(self):
        return self.length * self.width

这是实际的主程序

from Rectangle import Rectangle

recWidth = eval(input("Enter the length of the rectangle: "))
recLength = eval(input("Enter the width of the rectangle: "))
x = Rectangle()
y = Rectangle()
x.width(recWidth)
x.length(recLength)
print("The perimeter of a rectangle with a width of", recWidth,
      " units and a length of ", recLength, " units is ", x.getPerimeter(), ".")

谢谢,我希望我提供了足够的信息来帮助制定有效的问题。

1 个答案:

答案 0 :(得分:2)

当你只是变量时,你试图用2个参数(x和recWidth / recLength)调用方法widthlength。你或者打算这样做:

x.width   # get the width of the Rectangle
x.length  # get the height of the Rectangle

OR

x.setWidth(recWidth)     # set the width of the Rectangle
x.setLength(recLength)   # set the height of the Rectangle