Στην Python, μια μεταβλητή που ορίζεται εκτός της εμβέλειας μιας συνάρτησης αποκαλείται “global variable” και μπορεί να χρησιμοποιηθεί από οποιαδήποτε συνάρτηση στο πρόγραμμα. Για να ορίσετε μια καθολική μεταβλητή στην Python, απλώς αναθέστε μια τιμή σε μια μεταβλητή εκτός της εμβέλειας κάποιας συνάρτησης.

# Δημιουργία μεταβλητής x με τιμή "global"
x = "global"

# Δήλωση συνάρτησης myfunc
def myfunc():
  # Εκτύπωση της τιμής της μεταβλητής x μέσα στη συνάρτηση
  print("x inside function:", x)

# Κλήση της συνάρτησης myfunc
myfunc()

# Εκτύπωση της τιμής της μεταβλητής x έξω από τη συνάρτηση
print("x outside function:", x)

Το παραπάνω πρόγραμμα έχει δημιουργηθεί με τη χρήση της γλώσσας προγραμματισμού Python. Αρχικά, ορίζεται η μεταβλητή x με τιμή “global”. Έπειτα, δηλώνεται η συνάρτηση myfunc, η οποία εκτυπώνει την τιμή της μεταβλητής x μέσα στη συνάρτηση. Καλείται η συνάρτηση myfunc, και η τιμή της μεταβλητής x εκτυπώνεται μέσα από αυτήν. Τέλος, η τιμή της μεταβλητής x εκτυπώνεται εκτός της συνάρτησης. Η κύρια συνάρτηση τυπώνει επίσης την τιμή της μεταβλητής x και επιστρέφει την παρακάτω έξοδο:

x inside function: global
x outside function: global

Ένα ακόμα παράδειγμα όπου αναθέτουμε μια τιμή σε μια μεταβλητή εντός μιας συνάρτησης και προσπαθούμε να χρησιμοποιήσουμε τη μεταβλητή αυτή εκτός της συνάρτησης:

# Δήλωση της συνάρτησης myfunc
def myfunc():
  # Δημιουργία μεταβλητής y με τιμή "local" εντός της συνάρτησης
  y = "local"
  # Εκτύπωση της τιμής της μεταβλητής y μέσα στη συνάρτηση
  print("y inside function:", y)

# Κλήση της συνάρτησης myfunc
myfunc()

# Εκτύπωση της τιμής της μεταβλητής y έξω από τη συνάρτηση
# Η πρόσβαση στην μεταβλητή y εκτός της συνάρτησης θα προκαλέσει σφάλμα
print("y outside function:", y)

Στο παραπάνω πρόγραμμα ορίζεται η συνάρτηση myfunc, η οποία δημιουργεί μια τοπική μεταβλητή y με τιμή “local” μέσα στη συνάρτηση και εκτυπώνει την τιμή της. Κατόπιν, καλείται η συνάρτηση myfunc, εκτυπώνοντας την τιμή της μεταβλητής y μέσα από αυτήν. Ωστόσο, όταν προσπαθούμε να εκτυπώσουμε την τιμή της μεταβλητής y έξω από τη συνάρτηση, προκαλείται ένα σφάλμα καθώς η μεταβλητή y είναι τοπική και δεν είναι προσβάσιμη έξω από το πεδίο ορισμού της συνάρτησης. Η συνάρτηση τυπώνει την τιμή της μεταβλητής y εντός της συνάρτησης και επιστρέφει την παρακάτω έξοδο:

y inside function: local
NameError: name 'y' is not defined

Παρατηρούμε ότι δεν μπορούμε να χρησιμοποιήσουμε την τιμή της μεταβλητής y εκτός της συνάρτησης, καθώς έχει τοπική εμβέλεια.

[adinserter block=”2″]

Εάν θέλουμε να αλλάξουμε την τιμή μιας μεταβλητής που έχει παγκόσμια εμβέλεια, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί global εντός της συνάρτησης. Η σύνταξη είναι η εξής:

# Δήλωση της μεταβλητής x με τιμή "global" εκτός της συνάρτησης
x = "global"

# Δήλωση της συνάρτησης myfunc
def myfunc():
  # Δήλωση της μεταβλητής x ως global μέσα στη συνάρτηση
  global x
  # Αλλαγή της τιμής της μεταβλητής x σε "local"
  x = "local"

# Κλήση της συνάρτησης myfunc
myfunc()

# Εκτύπωση της τιμής της μεταβλητής x έξω από τη συνάρτηση
# Η μεταβλητή x έχει αλλάξει τιμή καθώς δηλώθηκε ως global
print("x outside function:", x)

Στο παραπάνω πρόγραμμα, η μεταβλητή x αρχικά δηλώνεται εκτός της συνάρτησης με τιμή “global”. Στη συνέχεια, ορίζεται η συνάρτηση myfunc, όπου με τη χρήση της δήλωσης global x, δηλώνεται ότι η μεταβλητή x που θα χρησιμοποιηθεί μέσα στη συνάρτηση είναι η ίδια με την x που έχει οριστεί εκτός της συνάρτησης. Έτσι, η αλλαγή της τιμής της x μέσα στη συνάρτηση συνεπάγεται την αλλαγή της τιμής της x και εκτός της συνάρτησης. Κατόπιν, γίνεται η κλήση της συνάρτησης myfunc και εκτυπώνεται η τιμή της μεταβλητής x έξω από τη συνάρτηση, η οποία έχει αλλάξει σε “local” λόγω της δήλωσης global. Η έξοδος του κώδικα θα είναι η εξής:

x outside function: local
7 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων