Edit detail for Predefinovanie operatorov revision 1 of 1

1
Editor: manduch
Time: 2008/05/25 11:53:33 GMT+2
Note:

changed:
-
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

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