Μέθοδοι ******* Ως τώρα έχετε δει αρκετές μεθόδους, αλλά δεν ξέρετε πως να γράψετε δικές σας. Ήρθε η ώρα να μάθετε. Λίγη θεωρία =========== Μια μέθοδος είναι ένα κομμάτι κώδικα που έχει ένα όνομα, και κάποια ορίσματα. Ο συνήθης λόγος να ονομάσουμε ένα κομμάτι κώδικα και να το κάνουμε μέθοδο, είναι ότι το χρησιμοποιούμε σε διάφορα σημεία ενός προγράμματος, και δε θέλουμε να το ξαναγράφουμε σε καθένα, για πολλούς λόγους. Τα ορίσματα των μεθόδων είναι αρκετά όπως τα ορίσματα των scripts, μόνο που οι μέθοδοι καθορίζουν τα ορίσματά τους και πως αυτά πρέπει να δίνονται. Λίγη πράξη (για γρηγορότερη κατανόηση) ====================================== Ορίστε μια απλή μέθοδος που λέγεται print_circle_area(): .. code-block:: python def print_circle_area(radius): print 3.14*radius Η σύνταξη, όπως φαίνεται από το παράδειγμα, είναι: .. code-block:: python def name(arguments): block Ορίσματα ======== Μια συνάρτηση μπορεί να παίρνει παραπάνω από ένα όρισμα. Αυτά διαχωρίζονται με κόμματα: .. code-block:: python def stop(hammer, time) print "Stop! "+hammer+time Όταν τα ορίσματα δίνονται όπως παραπάνω, είναι απαραίτητα. Εάν προσπαθήσετε να καλέσετε την ``stop()`` με ένα η τρία ορίσματα, η python θα απαντήσει με μήνυμα λάθους. Η python έχει και άλλους τρόπους να οριστούν τα ορίσματα μιας συνάρτησης, αλλά θα εξετάσουμε μόνο έναν ακόμα. Μπορούμε να δώσουμε ένα όρισμα μαζί με μια τιμή του, έτσι: .. code-block:: python def print_circle_area(radius=5): print 3.14*radius Αυτή η τιμή λέγεται default. Εάν η ``print_circle_area()`` κληθεί χωρίς κανένα όρισμα, η μεταβλητή ``radius`` θα πάρει την τιμή 5. Όλα τα ορίσματα με default τιμές θα πρέπει να εμφανίζονται μετά τα απλά ορίσματα, όπως εδώ: .. code-block:: python def mixalot(baby, back="back"): print baby+" got "+back Η μέθοδος ``mixalot()`` μπορεί να κληθεί με τους ακόλουθους έγκυρους τρόπους: .. code-block:: python >>> mixalot("Baby") Baby got back >>> mixalot("Sarah", back="front") Sarah got front >>> mixalot("Myth", "busted") Myth got busted Παρατηρήσεις ============ * Μια μέθοδος μπορεί να κληθεί μετά τον ορισμό της * Οι μεταβλητές που ορίζονται μέσα σε μία μέθοδο, δεν "υπάρχουν" έξω από τη μέθοδο, "πεθαίνουν" στο τέλος της μεθόδου. Επιστροφή τιμών =============== Είδαμε νωρίτερα συναρτήσεις που επιστρέφουν μια τιμή, όπως η ``raw_input()``: .. code-block:: python a = raw_input("> ") Για να επιστρέψει ένα αποτέλεσμα μια συνάρτηση, πρέπει να χρησιμοποιήσει την ειδική εντολή ``return``. Αυτή τερματίζει επιτόπου την εκτέλεση της μεθόδου (γι' αυτό και συνήθως τοποθετείται στο τέλος), και επιτρέφει την τιμή που της δίνουμε. Για παράδειγμα: .. code-block:: python def increment(number): number += 1 return number Αυτή η συνάρτητη παίρνει έναν αριθμό, τον αυξάνει κατά ένα και τον επιστρέφει. Επομένως, μπορεί να κληθεί έτσι: .. code-block:: python a = increment(3) Η μεταβλητή ``a`` θα αποκτήσει την τιμή 4. **Άσκηση 6**: Γράψτε την πρώτη σας μέθοδο! (με μέθοδο) ====================================================== Γράψτε μια συνάρτηση που παίρνει έναν αριθμό και επιστρέφει το τετράγωνό του, και χρησιμοποιήστε την σε ένα ``for`` loop για να υπολογίσετε τα τετράγωνα των 50 πρώτων φυσικών αριθμών.