Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δημιουργία μεταβλητής x με τιμή "global"
x = "global"
# Δήλωση συνάρτησης myfunc
def myfunc():
# Εκτύπωση της τιμής της μεταβλητής x μέσα στη συνάρτηση
print("x inside function:", x)
# Κλήση της συνάρτησης myfunc
myfunc()
# Εκτύπωση της τιμής της μεταβλητής x έξω από τη συνάρτηση
print("x outside function:", x)
# Δημιουργία μεταβλητής x με τιμή "global" x = "global" # Δήλωση συνάρτησης myfunc def myfunc(): # Εκτύπωση της τιμής της μεταβλητής x μέσα στη συνάρτηση print("x inside function:", x) # Κλήση της συνάρτησης myfunc myfunc() # Εκτύπωση της τιμής της μεταβλητής x έξω από τη συνάρτηση print("x outside function:", x)
# Δημιουργία μεταβλητής 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 και επιστρέφει την παρακάτω έξοδο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x inside function: global
x outside function: global
x inside function: global x outside function: global
x inside function: global
x outside function: global

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δήλωση της συνάρτησης myfunc
def myfunc():
# Δημιουργία μεταβλητής y με τιμή "local" εντός της συνάρτησης
y = "local"
# Εκτύπωση της τιμής της μεταβλητής y μέσα στη συνάρτηση
print("y inside function:", y)
# Κλήση της συνάρτησης myfunc
myfunc()
# Εκτύπωση της τιμής της μεταβλητής y έξω από τη συνάρτηση
# Η πρόσβαση στην μεταβλητή y εκτός της συνάρτησης θα προκαλέσει σφάλμα
print("y outside function:", y)
# Δήλωση της συνάρτησης myfunc def myfunc(): # Δημιουργία μεταβλητής y με τιμή "local" εντός της συνάρτησης y = "local" # Εκτύπωση της τιμής της μεταβλητής y μέσα στη συνάρτηση print("y inside function:", y) # Κλήση της συνάρτησης myfunc myfunc() # Εκτύπωση της τιμής της μεταβλητής y έξω από τη συνάρτηση # Η πρόσβαση στην μεταβλητή y εκτός της συνάρτησης θα προκαλέσει σφάλμα print("y outside function:", y)
# Δήλωση της συνάρτησης 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 εντός της συνάρτησης και επιστρέφει την παρακάτω έξοδο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
y inside function: local
NameError: name 'y' is not defined
y inside function: local NameError: name 'y' is not defined
y inside function: local
NameError: name 'y' is not defined

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

[adinserter block=”2″]

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δήλωση της μεταβλητής 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" εκτός της συνάρτησης 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" εκτός της συνάρτησης
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. Η έξοδος του κώδικα θα είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x outside function: local
x outside function: local
x outside function: local
7 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων