Python Global Keyword (Με παραδείγματα)

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

Πριν διαβάσετε αυτό το άρθρο, βεβαιωθείτε ότι έχετε κάποια βασικά στοιχεία για τις Python Global, Local και Nonlocal Variables.

Ποια είναι η καθολική λέξη-κλειδί

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

Κανόνες καθολικής λέξης-κλειδιού

Οι βασικοί κανόνες για τη globalλέξη-κλειδί στο Python είναι:

  • Όταν δημιουργούμε μια μεταβλητή μέσα σε μια συνάρτηση, είναι από προεπιλογή τοπική.
  • Όταν ορίζουμε μια μεταβλητή εκτός μιας συνάρτησης, είναι από προεπιλογή καθολική. Δεν χρειάζεται να χρησιμοποιήσετε globalλέξη-κλειδί.
  • Χρησιμοποιούμε globalλέξη-κλειδί για να διαβάζουμε και να γράφουμε μια καθολική μεταβλητή μέσα σε μια συνάρτηση.
  • Η χρήση globalλέξεων-κλειδιών εκτός μιας συνάρτησης δεν έχει καμία επίδραση.

Χρήση καθολικής λέξης-κλειδιού

Ας πάρουμε ένα παράδειγμα.

Παράδειγμα 1: Πρόσβαση σε καθολική μεταβλητή από μέσα σε μια συνάρτηση

 c = 1 # global variable def add(): print(c) add()

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 1

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

Παράδειγμα 2: Τροποποίηση καθολικής μεταβλητής από το εσωτερικό της συνάρτησης

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος δείχνει ένα σφάλμα:

 UnboundLocalError: αναφέρεται η τοπική μεταβλητή «c» πριν από την ανάθεση

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

Η λύση για αυτό είναι να χρησιμοποιήσετε τη globalλέξη-κλειδί.

Παράδειγμα 3: Αλλαγή καθολικής μεταβλητής από μια λειτουργία χρησιμοποιώντας καθολική

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Inside add (): 2 Κυρίως: 2

Στο παραπάνω πρόγραμμα, ορίζουμε το c ως μια καθολική λέξη-κλειδί μέσα στη add()συνάρτηση.

Στη συνέχεια, αυξάνουμε τη μεταβλητή c 1, δηλαδή c = c + 2. Μετά από αυτό, καλούμε τη add()συνάρτηση. Τέλος, εκτυπώνουμε την καθολική μεταβλητή c.

Όπως μπορούμε να δούμε, η αλλαγή συνέβη και στην παγκόσμια μεταβλητή εκτός λειτουργίας, c = 2.

Παγκόσμιες μεταβλητές σε όλες τις ενότητες Python

Στο Python, δημιουργούμε μια μοναδική ενότητα config.pyγια τη συγκράτηση καθολικών μεταβλητών και την κοινή χρήση πληροφοριών μεταξύ των ενοτήτων Python στο ίδιο πρόγραμμα.

Εδώ είναι πώς μπορούμε να μοιραστούμε καθολικές μεταβλητές σε όλες τις μονάδες python.

Παράδειγμα 4: Μοιραστείτε μια καθολική μεταβλητή σε όλες τις μονάδες Python

Δημιουργήστε ένα config.pyαρχείο, για να αποθηκεύσετε καθολικές μεταβλητές

 a = 0 b = "empty"

Δημιουργήστε ένα update.pyαρχείο, για να αλλάξετε καθολικές μεταβλητές

 import config config.a = 10 config.b = "alphabet"

Δημιουργήστε ένα main.pyαρχείο, για να ελέγξετε τις αλλαγές στην αξία

 import config import update print(config.a) print(config.b)

Όταν εκτελούμε το main.pyαρχείο, η έξοδος θα είναι

 10 αλφάβητο

Στην παραπάνω, έχουμε δημιουργήσει τρία αρχεία: config.py, update.pyκαι main.py.

Η ενότητα config.pyαποθηκεύει καθολικές μεταβλητές των α και β. Στο update.pyαρχείο, εισάγουμε τη config.pyλειτουργική μονάδα και τροποποιούμε τις τιμές των a και b. Ομοίως, στο main.pyαρχείο, εισάγουμε και τα δύο config.pyκαι το update.pymodule. Τέλος, εκτυπώνουμε και δοκιμάζουμε τις τιμές των καθολικών μεταβλητών, είτε έχουν αλλάξει είτε όχι.

Παγκόσμιο σε ένθετες συναρτήσεις

Δείτε πώς μπορείτε να χρησιμοποιήσετε μια καθολική μεταβλητή σε ένθετη συνάρτηση.

Παράδειγμα 5: Χρήση μιας καθολικής μεταβλητής σε λειτουργία Nested

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

Η έξοδος είναι:

 Πριν από τη γραμμή κλήσεων: 20 Γραμμή κλήσεων τώρα Μετά τη γραμμή κλήσης: 20 x κύρια: 25

Στο παραπάνω πρόγραμμα, δηλώσαμε μια καθολική μεταβλητή μέσα στην ένθετη συνάρτηση bar(). Εσωτερική foo()συνάρτηση, το x δεν επηρεάζει την καθολική λέξη-κλειδί.

Πριν και μετά την κλήση bar(), η μεταβλητή x παίρνει την τιμή της τοπικής μεταβλητής, δηλαδή x = 20. Εκτός της foo()συνάρτησης, η μεταβλητή x θα λάβει την τιμή που ορίζεται στη bar()συνάρτηση δηλαδή x = 25. Αυτό συμβαίνει επειδή έχουμε χρησιμοποιήσει globalλέξη-κλειδί στο x για να δημιουργήσουμε καθολική μεταβλητή μέσα στη bar()συνάρτηση (τοπικό εύρος).

Εάν κάνουμε οποιεσδήποτε αλλαγές μέσα στη bar()συνάρτηση, οι αλλαγές εμφανίζονται εκτός του τοπικού πεδίου, δηλαδή foo().

ενδιαφέροντα άρθρα...