为什么“列表”对象不可调用”,请使用类

时间:2018-12-19 18:53:30

标签: python list

这是一个大约形状,我将提供坐标,但无法存储 这是我的班级代码

 class point():
    def __init__(self,x,y):
        self.x = x
        self.y = y
class Rectangle():
     def __init__(self,left,right,position):
        self.left = left#point
        self.right = right#point
        self.position = position

我将为我们建立类列表:

rectangleArray = []
    point = list(input().split())//input data
    judge = point[0] //list[0] is judge shape so pop
    point.pop(0)
    point = [float(l) for l in point] //str convert float
    if(judge=='*'):
        break
    if(judge=='r'):
        temp = Rectangle(point(8.5,17.0),point(25.5,-8.5),0)
        temp = 
  Rectangle(point(point[0],point[1]),point(point[2],point[3]),number)
        rFinal = rFinal + 1
        rectangleArray.append(temp)// append to list

我的错误是:

   typeError                                 Traceback (most recent call last)
<ipython-input-138-9ba8926badc6> in <module>()

     15         break
     16     if(judge=='r'):
---> 17         temp = Rectangle(point(8.5,17.0),point(25.5,-8.5),0)
     18         temp = Rectangle(point(point[0],point[1]),point(point[2],point[3]),number)
     19         rFinal = rFinal + 1

TypeError: 'list' object is not callable

请告诉我为什么! 谢谢

2 个答案:

答案 0 :(得分:0)

您将名为point(即list)的变量与类point混合。

您需要使用其他名称,例如使用{{3}}

class Point():
    def __init__(self,x,y):
        self.x = x
        self.y = y

然后在代码中:

temp = Rectangle(Point(8.5,17.0),Point(25.5,-8.5),0)
temp = Rectangle(Point(point[0],point[1]),Point(point[2],point[3]),number)

答案 1 :(得分:0)

您同时定义了类point和变量point。因为稍后要定义变量point,所以它会遮盖类定义。将类重命名为大写Point并调用Rectangle(Point(8.5,17.0),Point(25.5,-8.5),0)(请参见大写)应该可以解决该错误。

有帮助吗?