Συναρτήσεις Callback στην Python
Στην Python υπάρχει η δυνατότητα να μεταβιβάζουμε συναρτήσεις στις παραμέτρους άλλων συναρτήσεων. Σε αυτήν την περίπτωση οι συναρτήσεις μεταβιβάζονται ως μεταβλητές (χωρίς παρενθέσεις) και ονομάζονται callback. Αυτές οι συναρτήσεις-callback θα εκτελούνται στο σώμα της κύριας συνάρτησης.
Ας υποθέσουμε ότι έχουμε μια συνάρτηση test,
που δέχεται ως παράμετρο έναν αριθμό και
μια συνάρτηση:
def test(num, func):
pass
Τώρα ας δημιουργήσουμε μια συνάρτηση func,
που θα υψώνει έναν αριθμό στο τετράγωνο:
def func(num):
return num ** 2
Τώρα ας επιστρέψουμε στην test και στο
σώμα της να προσθέσουμε κώδικα, έτσι ώστε η συνάρτηση-callback που μεταβιβάστηκε
στην παράμετρο να δέχεται επίσης ως παράμετρο έναν αριθμό. Τελικά, θα προκύψει ότι
το αποτέλεσμα της test θα είναι η εκτέλεση μιας άλλης
συνάρτησης, της οποίας ο αριθμός θα λαμβάνεται
από την πρώτη παράμετρο της test:
def test(num, func):
print(func(num))
Στη συνέχεια καλούμε τη συνάρτηση test και
της μεταβιβάζουμε ως πρώτη παράμετρο το 3, και
ως δεύτερη - την func:
test(3, func) # θα εκτυπώσει 9
Ποιο θα είναι το αποτέλεσμα της εκτέλεσης του ακόλουθου κώδικα:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)