Python global Anahtar Kelimesi
Bu makalede global anahtar kelime, global değişken ve global anahtar kelimelerin ne zaman kullanılacağı hakkında bilgi edineceksiniz.
Bu makaleyi okumadan önce Python Global, Local ve Nonlocal Variables hakkında bazı temel bilgilere sahip olduğunuzdan emin olun .
küresel anahtar kelime nedir
Python’da global
anahtar kelime, değişkeni geçerli kapsamın dışında değiştirmenize izin verir. Global bir değişken oluşturmak ve yerel bir bağlamda değişkende değişiklik yapmak için kullanılır.
Global Anahtar Kelime Kuralları
global
Python’da anahtar kelime için temel kurallar şunlardır:
- Bir fonksiyon içinde bir değişken oluşturduğumuzda, varsayılan olarak yereldir.
- Bir fonksiyonun dışında bir değişken tanımladığımızda, varsayılan olarak globaldir. Anahtar kelime kullanmak zorunda değilsiniz
global
. global
Bir fonksiyon içinde global bir değişkeni okumak ve yazmak için anahtar kelime kullanırız .- Anahtar kelimenin bir fonksiyon dışında kullanılmasının
global
bir etkisi yoktur.
Global Anahtar Kelimenin Kullanımı
Bir örnek alalım.
Örnek 1: Bir Fonksiyonun İçinden Global Değişkene Erişme
1 2 3 4 5 6 | c = 1 # global variable def add(): print(c) add() |
Yukarıdaki programı çalıştırdığımızda çıktısı şu şekilde olacaktır:
1 | <samp>1</samp> |
Ancak, global değişkeni bir fonksiyonun içinden değiştirmemiz gereken bazı senaryolarımız olabilir.
Örnek 2: Global Değişkeni Fonksiyonun İçinden Değiştirmek
1 2 3 4 5 6 7 | c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add() |
Yukarıdaki programı çalıştırdığımızda çıktı bir hata gösteriyor:
1 | <samp>UnboundLocalError: atamadan önce başvurulan yerel değişken 'c'</samp> |
Bunun nedeni, yalnızca global değişkene erişebilmemiz, ancak onu işlevin içinden değiştiremememizdir.
Bunun çözümü global
anahtar kelimeyi kullanmaktır.
Örnek 3: Global Değişkeni Global Kullanarak Bir Fonksiyonun İçinden Global Değişkeni Değiştirme
1 2 3 4 5 6 7 8 9 | c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c) |
Yukarıdaki programı çalıştırdığımızda çıktısı şu şekilde olacaktır:
1 2 | <samp>İçerideki add(): 2 ana: 2</samp> |
Yukarıdaki programda tanımladığımızcadd()
fonksiyon içinde global bir anahtar kelime olarak .
Daha sonra değişkeni artırıyoruz.c2 ile , yani c = c + 2
. Bundan sonra add()
fonksiyonu çağırırız. Son olarak, global değişkeni yazdırıyoruzc.
Görüldüğü gibi, fonksiyon dışında global değişkende de değişim meydana geldi c = 2
.
Python Modüllerinde Global Değişkenler
config.py
Python’da, global değişkenleri tutmak ve aynı program içindeki Python modülleri arasında bilgi paylaşmak için tek bir modül oluşturuyoruz .
Python modülleri arasında global değişkenleri nasıl paylaşabileceğimiz aşağıda açıklanmıştır.
Örnek 4: Genel bir Değişkeni Python Modüllerinde Paylaşın
config.py
Global değişkenleri saklamak için bir dosya oluşturun
1 2 | a = 0 b = "empty" |
update.py
Genel değişkenleri değiştirmek için bir dosya oluşturun
1 2 3 4 | import config config.a = 10 config.b = "alphabet" |
main.py
Değerdeki değişiklikleri test etmek için bir dosya oluşturun
1 2 3 4 5 | import config import update print(config.a) print(config.b) |
Dosyayı çalıştırdığımızda main.py
çıktısı
1 2 | <samp>10 alfabe</samp> |
Yukarıda üç dosya oluşturduk: config.py
, update.py
, ve main.py
.
Modül config.py
, global değişkenleri saklaraveb. Dosyada , modülü update.py
içe aktarıyoruz ve değerlerini değiştiriyoruz.config.py
aveb. Benzer şekilde, dosyada hem ve hem de modülü main.py
içe aktarıyoruz. Son olarak global değişkenlerin değerlerini değişip değişmediklerini yazdırıp test ediyoruz.config.py
update.py
İç İçe İşlevlerde Global
Global bir değişkeni iç içe geçmiş işlevde nasıl kullanabileceğiniz aşağıda açıklanmıştır.
Örnek 5: İç İçe İşlevde Global Değişken Kullanma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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) |
Çıktı:
1 2 3 4 | <samp>Çubuğu aramadan önce: 20 şimdi arama çubuğu Barı aradıktan sonra: 20 x ana: 25</samp> |
Yukarıdaki programda, iç içe geçmiş fonksiyon içinde global bir değişken tanımladık bar()
. İç foo()
fonksiyon,xglobal anahtar kelimenin etkisi yoktur.
Çağırmadan önce ve sonra bar()
, değişkenxyerel değişkenin değerini alır, yani x = 20
. Fonksiyonun dışında foo()
, değişkenxbar()
yani fonksiyonda tanımlanan değeri alacaktır x = 25
. Bunun nedeni, global
anahtar kelimeyi burada kullanmamızdır.xfonksiyon içinde global değişken oluşturmak için bar()
(yerel kapsam).
Fonksiyon içinde herhangi bir değişiklik yaparsak bar()
, değişiklikler yerel kapsamın dışında görünür, yani foo()
.