60 likes | 261 Views
Python – OOP. Ulomki, seštevanje, množenje. + nad objekti neznanega razreda. Uvodno predavanje – tam smo omenili: class Ulomek : def __ init __( self , st, im) : self.stevec = st self.imenovalec = im def __ add __( self , ulP ) : novŠtevec = self.stevec * ul.imenovalec +
E N D
Python – OOP Ulomki, seštevanje, množenje
+ nad objekti neznanega razreda Uvodno predavanje – tam smo omenili: classUlomek : def __init__(self, st, im) : self.stevec = st self.imenovalec = im def __add__(self, ulP) : novŠtevec = self.stevec * ul.imenovalec + ulP.stevec * self.imenovalec novImenovalec = self.imenovalec * ulP.imenovalec return Ulomek(novŠtevec, novImenovalec) def izpis(self) : print(str(self.stevec) + " / " + str(self.imenovalec), end='') mojUl = Ulomek(3, 5) polovica = Ulomek(1, 2) mojUl = mojUl + polovica
Včasih bi radi uporabljali • *, -, ==, >, >= … • Vse to lahko počnemo tudi z objekti novih razredov • Le ustrezno poimenovano metodo moramo napisati • Vse možnosti: • http://docs.python.org/dev/3.0/reference/datamodel.html#special-method-names
Primerjave • < • def__lt__(self, drugObjekt) • <= • def__le__(self, drugObjekt) • == • def__eq__(self, drugObjekt) • != • def__ne__(self, drugObjekt) • > • def__gt__(self, drugObjekt) • >= • def__ge__(self, drugObjekt) • Vse metode naj vrnejo True/False
Aritmetika • + • def __add__(self, drugObjekt) • - • def __sub__(self, drugObjekt) • * • def __mul__(self, drugObjekt) • / • def __truediv__(self, drugObjekt) • // • def __floordiv__(self, drugObjekt) • % • def __mod__(self, drugObjekt) • Vse metode vrnejo nov objekt te vrste • Če torej računamo x + y, je torej isto, kot če bi napisali x.__add__(y)
In že znano • def __init__ • def __str__ • def __repr__