y.....8
#python

https://pastebin.com/1JHtZpsi

Jak tworząc obiekt klasy Figura,mogę wywołać poźniej te 3 funkcje specjalne? Przy tworzeniu nie podaję parametrów,a później co za other mam wstawić,żeby wywołać np. dodawanie?
  • Najlepsze
  • Wszystkie komentarze
jszafran
jszafran
@yras8: W tych metodach odwolujesz sie do pol self.x, self.y, ktore nie istnieja. Dodaj do klasy methode __init__ ( https://pastebin.com/heGC3xkL ), dzieki ktorej bedziesz mogl tworzyc instancje klasy z atrybutami x i y.
l.....e
l.....e
@yras8: No podajesz jak oparamer metody ktora wywolujesz?
y.....8
@less_is_more: dadada._add_("nie wiem co tu wpisać")
l.....e
l.....e
@yras8: Ty w ogole ogarniasz czym jest parametr metody?
y.....8
@less_is_more: no.. chyba ogarniam..
l.....e
l.....e
@yras8: parameter other to obiekt Figura z tego co widzę.
jszafran
jszafran
@yras8: Te metody zostana wywolane, gdy wywolasz operator + (_add), - (sub_), * (_mul_) na instancji twojej klasy. Other to bedzie obiekt znajdujacy sie po prawej stronie operatora.
y.....8
@jszafran: @less_is_more: Figura nie przechodzi,jakieś pomysły?
croppz
Figura nie przechodzi,jakieś pomysły?


@yras8: dodać inita, dowiedzieć się co to operator overloading
y.....8
@jszafran: nadal nie iwem,jak już utworzyłem figure np.(2,5) i dodałem funkcję specjalną init jak odwołać się do add
jszafran
jszafran
Tak jak napisal croppz, poczytaj o operator overloading. Stwórz sobie dwie instancje klasy Figura, np. fig1 = Figura(2, 3); fig2 = Figura(3, 5).
Gdy teraz dodasz je do siebie - fig1 + fig2, to zostanie wywalana metoda __add__() - bo ona przeladowuje operator +. Wtedy self bedzie sie odnosil do fig1, a other do fig2.
y.....8
@jszafran: dobra,udało się.
jszafran
jszafran
@yras8: Spoko, w sumie moglem tez dodac, ze powyzsze wywolanie fig1 + fig2 bedzie rownowazne wywolaniu fig1.__add__(fig2).
y.....8