Μέθοδοι

Ως τώρα έχετε δει αρκετές μεθόδους, αλλά δεν ξέρετε πως να γράψετε δικές σας. Ήρθε η ώρα να μάθετε.

Λίγη θεωρία

Μια μέθοδος είναι ένα κομμάτι κώδικα που έχει ένα όνομα, και κάποια ορίσματα. Ο συνήθης λόγος να ονομάσουμε ένα κομμάτι κώδικα και να το κάνουμε μέθοδο, είναι ότι το χρησιμοποιούμε σε διάφορα σημεία ενός προγράμματος, και δε θέλουμε να το ξαναγράφουμε σε καθένα, για πολλούς λόγους.

Τα ορίσματα των μεθόδων είναι αρκετά όπως τα ορίσματα των scripts, μόνο που οι μέθοδοι καθορίζουν τα ορίσματά τους και πως αυτά πρέπει να δίνονται.

Λίγη πράξη (για γρηγορότερη κατανόηση)

Ορίστε μια απλή μέθοδος που λέγεται print_circle_area():

def print_circle_area(radius):
   print 3.14*radius

Η σύνταξη, όπως φαίνεται από το παράδειγμα, είναι:

def name(arguments):
   block

Ορίσματα

Μια συνάρτηση μπορεί να παίρνει παραπάνω από ένα όρισμα. Αυτά διαχωρίζονται με κόμματα:

def stop(hammer, time)
   print "Stop! "+hammer+time

Όταν τα ορίσματα δίνονται όπως παραπάνω, είναι απαραίτητα. Εάν προσπαθήσετε να καλέσετε την stop() με ένα η τρία ορίσματα, η python θα απαντήσει με μήνυμα λάθους.

Η python έχει και άλλους τρόπους να οριστούν τα ορίσματα μιας συνάρτησης, αλλά θα εξετάσουμε μόνο έναν ακόμα. Μπορούμε να δώσουμε ένα όρισμα μαζί με μια τιμή του, έτσι:

def print_circle_area(radius=5):
   print 3.14*radius

Αυτή η τιμή λέγεται default. Εάν η print_circle_area() κληθεί χωρίς κανένα όρισμα, η μεταβλητή radius θα πάρει την τιμή 5. Όλα τα ορίσματα με default τιμές θα πρέπει να εμφανίζονται μετά τα απλά ορίσματα, όπως εδώ:

def mixalot(baby, back="back"):
   print baby+" got "+back

Η μέθοδος mixalot() μπορεί να κληθεί με τους ακόλουθους έγκυρους τρόπους:

>>> mixalot("Baby")
Baby got back
>>> mixalot("Sarah", back="front")
Sarah got front
>>> mixalot("Myth", "busted")
Myth got busted

Παρατηρήσεις

  • Μια μέθοδος μπορεί να κληθεί μετά τον ορισμό της
  • Οι μεταβλητές που ορίζονται μέσα σε μία μέθοδο, δεν “υπάρχουν” έξω από τη μέθοδο, “πεθαίνουν” στο τέλος της μεθόδου.

Επιστροφή τιμών

Είδαμε νωρίτερα συναρτήσεις που επιστρέφουν μια τιμή, όπως η raw_input():

a = raw_input("> ")

Για να επιστρέψει ένα αποτέλεσμα μια συνάρτηση, πρέπει να χρησιμοποιήσει την ειδική εντολή return. Αυτή τερματίζει επιτόπου την εκτέλεση της μεθόδου (γι’ αυτό και συνήθως τοποθετείται στο τέλος), και επιτρέφει την τιμή που της δίνουμε. Για παράδειγμα:

def increment(number):
   number += 1
   return number

Αυτή η συνάρτητη παίρνει έναν αριθμό, τον αυξάνει κατά ένα και τον επιστρέφει. Επομένως, μπορεί να κληθεί έτσι:

a = increment(3)

Η μεταβλητή a θα αποκτήσει την τιμή 4.

Άσκηση 6: Γράψτε την πρώτη σας μέθοδο! (με μέθοδο)

Γράψτε μια συνάρτηση που παίρνει έναν αριθμό και επιστρέφει το τετράγωνό του, και χρησιμοποιήστε την σε ένα for loop για να υπολογίσετε τα τετράγωνα των 50 πρώτων φυσικών αριθμών.