У меня проблема в простом коде, которую я написал

Ученая точка имеет значения X и Y

Классная площадь (точка) включает в себя 4 балла: P1, P2, P3, P4

Я пытаюсь обновить значение X P1, например, с SQ1.P1.SET_X (NUM1) и не удалось.

Я пытался работать с публичной дефицитой, но и потерпел неудачу

Whot моя проблема? Спасибо

class Point:
    def __init__(self,x=0,y=0):
        self.__x = x
        self.__y = y
           
    def get_x(self):
        return self.__x
    
    def get_y(self):
        return self.__y
    
    def set_x(self,x=0):
        self.__x = x
    
    def set_y(self,y=0):
        self.__y = y
  

class Square (Point):
    def __init__(self,p1,p2,p3,p4):
        self.__p1 = p1
        self.__p2 = p2
        self.__p3 = p3
        self.__p4 = p4
            
    def get_p1(self):
        return self.__p1
    
    def get_p2(self):
        return self.__p2
    
    def get_p3(self):
        return self.__p3
    
    def get_p4(self):
        return self.__p4
    
    def set_p1(self,p1):
        self.__p1 = p1
    
    def set_p2(self,p2):
        self.__p2 = p2
    
    def set_p3(self,p1):
        self.__p3 = p3
    
    def set_p4(self,p4):
        self.__p4 = p4


def main():

    p1 = Point(2,0)
    p2 = Point(2,2)
    p3 = Point(0,2)
    p4 = Point(0,0)

    sq1 = Square(p1,p2,p3,p4)
    sq1.p1.set_x(4) # this line failing

if __name__ == "__main__":
    main()
    
-1
bdv005 8 Окт 2020 в 17:05

1 ответ

Лучший ответ

Заменить

    sq1.p1.set_x(4) # this line failing

С участием

    sq1.get_p1().set_x(4)

Это потому, что класс Square не имеет свойства p1 (у него есть свойство __p1, но не p1).

0
Jesper 8 Окт 2020 в 14:30