Predefinovanie operátorov

Operátory v pythone môžeme predefinovať. To znamená používať operátory, napr. +,-,/, and,< atď. s našimi triedami.

Príklad:

class C(object):

def __init__(self, h1, h2):             # trieda bude obsahovať 2 hodnoty: hodnota1, hodnota2
    self.hodnota1=h1
    self.hodnota2=h2

def __add__(self, inyObjekt):           # tu predefinujeme operátor + ,tak aby sa sčítali obe hodnoty
    self.hodnota1+=inyObjekt.hodnota1
    self.hodnota2+=inyObjekt.hodnota2
    return self

a=C(1,2)                                # vytvoríme prvý objekt
b=C(2,3)                                # vytvoríme druhý objekt
a=a+b                                   # k prvemu pričítame druhý, tu sa už použije náš predefinovaný operátor
print a.hodnota1, a.hodnota2            # vypise : 3 5

Operátory a ich slovné ekvivalenty :

Najznámejšie:

+ __add__
- __sub__
* __mul__
/ __div__
< __le__
> __gt__
== __eq__

ostatné operátory: http://docs.python.org/lib/module-operator.html




subject:
  ( 112 subscribers )