Δημοσιεύτηκε: 06 Οκτ 2009, 10:46
από malos
Όταν δίνω pyuic4 arxeio.ui > arxeio.py μου φτιάχνει μια χαρά τον κώδικα σε python (στο αρχείο.py).
Εκεί μέσα παρατηρώ την μέθοδο __init__ και από κάτω είναι πλακωμένο στην self.

O Swaroop μας είπε λίγο γι αυτά ! (Να ναι καλά το παληκάρι :D ). http://www.swaroopch.com/notes/Python_e ... F%8C%CF%82

Μήπως μπορούμε να πούμε κάτι περισσότερο εδώ ;
Να το κάνουμε ακόμα πιο κατανοητό;

Δηλαδή έχω σκόρπια κάποια πράγματα ( και συναισθήματα :lol: ) σχετικά με την init και την self.

1. Όταν λέει "Η μέθοδος __init__ εκτελείται μόλις ένα αντικείμενο μιας κλάσης αρχικοποιείται." τι εννοεί ;
Το a = 5 π.χ. δεν είναι μια αρχικοποίηση του a , αν το βάλουμε στην αρχή του κώδικα ( και μετά μπορεί να αλλάξει η τιμή φαντάζομαι ).
Ποιο το όφελος με την init ;

2. Τη self πρέπει να τη βάζουμε πάντα όταν στήνουμε μία κλάση ;

3 στον κώδικα

Κώδικας: Επιλογή όλων
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print('Hello, my name is', self.name)

p = Person('Swaroop')
p.sayHi()


λέει ότι "Τώρα, δημιουργούμε ένα νέο πεδίο που αποκαλείται επίσης name. Προσέξτε ότι πρόκειται για δύο διαφορετικές μεταβλητές παρότι αναφέρονται και οι δύο ως 'name'. Δεν πρόκειται να υπάρξει σύγχιση εδώ διότι ο διάστικτος συμβολισμός (dotted notation) self.name σημαίνει ότι υπάρχει που λέγεται "name" και είναι μέρος του αντικειμένου που λέγεται "self" ενώ το άλλο name είναι μια τοπική μεταβλητή.

μπορεί κάποιος να αντικαταστήσει το ένα name με τη λέξη onoma ώστε να γίνει κατανοητός ο διαχωρισμός αυτός. Εγώ χάθηκα :crazy:

Και γενικά μπορούμε να τα συζητήσουμε αυτά λίγο.

Ευχαριστώ :)