Informatika2-2013/Gyakorlat12

A MathWikiből
(Változatok közti eltérés)
28. sor: 28. sor:
 
* __len__: hossz lekérése
 
* __len__: hossz lekérése
 
* __repr__: karakterekkel való reprezentálás
 
* __repr__: karakterekkel való reprezentálás
 +
 +
== Öröklõdés ==
 +
 +
<python>
 +
class A(object):
 +
    def __init__(self, x):
 +
        print "A letrehozva"
 +
        self.v1 = x
 +
    def v1ketszeres(self):
 +
        return self.v1 * 2
 +
 +
class B(A):
 +
    def __init__(self, x, y):
 +
        print "B letrehozva"
 +
        super(B, self).__init__(x)
 +
        self.v2 = y
 +
    def v2haromszoros(self):
 +
        return self.v2 * 3
 +
 +
 +
objA = A(5)
 +
print "========"
 +
objB = B(1, 4)
 +
 +
print "========"
 +
print objA.v1ketszeres()
 +
 +
print "========"
 +
print objB.v1ketszeres()
 +
print objB.v2haromszoros()
 +
</python>
 +
 +
A super() függvénynek adunk egy osztályt, és egy objektumot, tekinthetjük úgy a mûködését, hogy a neki adott objektum azon részét adja vissza ami az adott osztály (B) õsosztályának (A) felel meg.
 +
 +
Egy szemléletesebb [http://math.bme.hu/~kkovacs/info2/folyadekok.py példa].

A lap 2013. április 30., 05:45-kori változata

Ismétlés

Mûveletek átdefiniálása, osztályok részletesebben:

class Vektor(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __add__(self, jobb):
        return Vektor(self.x + jobb.x, self.y + jobb.y)
    def __sub__(self, jobb):
        return Vektor(self.x - jobb.x, self.y - jobb.y)
    def __mul__(self, szam):
        return Vektor(self.x * szam, self.y * szam)
    def hossz(self):
        return sqrt(self.x ** 2 + self.y ** 2)
    def __repr__(self):
        return "(" + str(self.x) + ", " + str(self.y) + ")"
  • __init__: inicializálás
  • __add__: összeadás
  • __sub__: kivonás
  • __mul__: szorzás
  • __div__: osztás
  • __pow__: hatványozás
  • __len__: hossz lekérése
  • __repr__: karakterekkel való reprezentálás

Öröklõdés

class A(object):
    def __init__(self, x):
        print "A letrehozva"
        self.v1 = x
    def v1ketszeres(self):
        return self.v1 * 2
 
class B(A):
    def __init__(self, x, y):
        print "B letrehozva"
        super(B, self).__init__(x)
        self.v2 = y
    def v2haromszoros(self):
        return self.v2 * 3
 
 
objA = A(5)
print "========"
objB = B(1, 4)
 
print "========"
print objA.v1ketszeres()
 
print "========"
print objB.v1ketszeres()
print objB.v2haromszoros()

A super() függvénynek adunk egy osztályt, és egy objektumot, tekinthetjük úgy a mûködését, hogy a neki adott objektum azon részét adja vissza ami az adott osztály (B) õsosztályának (A) felel meg.

Egy szemléletesebb példa.

Személyes eszközök