экземпляр как аргумент

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Увидел, что в качестве аргумента при вызове метода dis
Код:
class Point:
    
    def set(self, x, y):
        self.x = x
        self.y = y

    def dis(self, p):
        print(p.x, self.x, p.y, self.y)
        
    def ttt (self, a, b):
        print(self.x, self.y, a.x, a.y, b.x, b.y)
        
p1 = Point()
p2 = Point()
p3 = Point()
p1.set(1, 2)
p2.set(4, 6)
p2.set(8, 9)

p1.dis(p2)
p1.ttt(p2, p3)

А если подставляешь два экземпляра получаешь ошибку AttributeError: 'Point' object has no attribute 'x'

В чем проблема, и где можно прочитать об этом. Нимогу ничего найти или не правильно формулирую вопрос в гугл.
можно подставлять экземпляр
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Вопрос решон, ошибку нашол. Если кто подскажет где об этом почитать, буду очень благодарен.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
переменные не инициализированы для объекта, поэтому ошибка
решение - self.x = 0 и self.y = 0 поместить в метод __init__
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
переменные не инициализированы для объекта, поэтому ошибка
решение - self.x = 0 и self.y = 0 поместить в метод __init__
В моем случае, ошибка два раза
p2.set(4, 6)
p2.set(8, 9)
Те p3 не объявлялся.
 

Форум IT Специалистов