Python3: TypeError: 'int' object is not callable, is it because the way I called the method .area() is wrong? Or is it because the way I def the .area() is wrong? Thank you
class Rectangle:
def __init__ (self):
self.height = 0
self.width = 0
self.area = 0
def setData(self, height, width):
self.height = height
self.width = width
def area(self, height, width):
self.area = height * width
def __str__(self):
return "height = %i, width = %i" % (self.height, self.width)
return "area = %i" % self.area
if __name__ == "__main__":
r1 = Rectangle()
print (r1)
r1.setData(3,4)
print (r1)
Here I call .area(), I think what's where the problem comes from:
r1.area(3,4)
print (r1)
It's because you first defined a variable area (an integer to be specific) as an attribute of your class Rectangle, and later a function area().
This inconsistency causes confusion so the Python interpreter tries to call the interger as a function which fails. Just rename one of the integer variable (self.area = ...) or the function (def area(...)), and everything should work fine.
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With