Почему объект 'list' не вызывается? - PullRequest
0 голосов
/ 19 декабря 2018

это примерная форма, и я предоставлю координаты, но я не могу сохранить здесь мой код класса

 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 голосов
/ 19 декабря 2018

Вы определяете как класс point, так и переменную point.Поскольку вы определяете переменную point позже, она скрывает определение класса.Переименование класса в верхний регистр Point и вызов Rectangle(Point(8.5,17.0),Point(25.5,-8.5),0) (см. Верхний регистр) должны устранить ошибку.

Помогает ли это?

0 голосов
/ 19 декабря 2018

Вы смешиваете свою переменную с именем point (которая list) с вашим классом point.

Вам необходимо использовать разные имена, используйте в верхнем регистре для классов Например,

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...