Δημοσιεύτηκε: 09 Οκτ 2009, 16:12
από Dimitris
Συγγνώμη που παρεμβαίνω (δεν είδα το κεφάλαιο του βιβλίου) αλλά θα δώσω ένα απλό παράδειγμα για τις classes, μιας κι εγώ κάποτε είχα μπερδευτεί.

Κώδικας: Επιλογή όλων
class άνθρωπος:
def __init__(self, ύψος, βάρος):
self.ύψος = ύψος
self.βάρος = βάρος

def τρώω(self, φαγητό_1, φαγητό_2):
self.βάρος = self.βάρος + φαγητό_1 + φαγητό_2

def γυμναστική(self, ώρες):
self.βάρος = self.βάρος - 0.1*ώρες


Η class είναι κατηγορίες "αντικειμένων". Οι μέθοδοι είναι ενέργειες που μπορούν να εφαρμοσθούν στο αντικείμενο αυτό. Στο παράδειγμά μας, ένας άνθρωπος μπορεί να γεννηθεί (__init__), να φάει (τρώω) και να γυμναστεί (γυμναστική). Κάθε δραστηριότητα δέχεται κάποιες παραμέτρους. Ένας άνθρωπος γεννιεται με κάποιο ύψος (0.5μ) και βάρος(10kg):
Κώδικας: Επιλογή όλων
εγώ = άνθρωπος (0.5, 10)

Όταν τρώει, αλλάζει το βάρος του:
Κώδικας: Επιλογή όλων
μπριζόλα = 0.4 # μάλλον κιλά
σαλάτα = 0.1
εγώ.τρώω(μπριζόλα, σαλάτα)

Και όταν γυμνάζεται χάνει ένα μικρό ποσοστό μόνο (10%)
Κώδικας: Επιλογή όλων
εγώ.γυμναστική(3)


Τα self.xxx είναι οι ιδιότητες του ανθρώπου που αλλάζουν με την εφαρμογή των μεθόδων "τρώω" και "γυμναστική". To ύψος/βάρος είναι μόνο τοπικές μεταβλητής της γέννησης (__init__) ενώ τα self.ύψος, self.βάρος είναι ιδιότητες του εκάστοτε ανθρώπου.
εσύ = άνθρωπος(0.6,12) # αρχικοποιεί διαφορετικά το αντικείμενο εσύ