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

2024-05-13 16:06:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

 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

请告诉我为什么!! 多谢各位


Tags: selfrightinputifinitdefpositionleft
2条回答

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

这有用吗

将名为point(即list)的变量与类point混合使用

您需要有不同的命名,使用upper-case for classes,例如

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)

相关问题 更多 >