Bu makalede, global anahtar kelime, global değişken ve ne zaman global anahtar kelimeler kullanılacağı hakkında bilgi edineceksiniz.
Bu makaleyi okumadan önce, Python Global, Yerel ve Yerel Olmayan Değişkenlerle ilgili temel bilgilere sahip olduğunuzdan emin olun.
Global Anahtar Kelimesi
Python’da global anahtar kelimesi, geçerli kapsamın dışındaki değişkeni değiştirmenize izin verir. Genel bir değişken oluşturmak ve yerel bağlamda değişken üzerinde değişiklik yapmak için kullanılır.
Global Anahtar Kelime Kuralları
Python’daki global anahtar kelime için temel kurallar şunlardır:
- Bir işlevin 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, bu varsayılan olarak globaldir. Global anahtar kelime kullanmak zorunda değilsiniz.
- Bir fonksiyonun içindeki bir global değişkeni okumak ve yazmak için global anahtar kelimeyi kullanırız.
- Genel anahtar kelimenin bir işlev dışında kullanılmasının bir etkisi yoktur
- Global Anahtar Kelime Kullanımı (Örnek ile)
Bir örnek verelim.
Örnek 1: Bir Fonksiyonun İçinden Genel Değişkene Erişme
1 2 3 4 5 6 7 8 | c = 1 # global değişken def ornek(): print(c) ornek() |
Çıktı:
1 2 3 | 1 |
Ancak, genel değişkeni bir işlev içinden değiştirmemiz gereken bazı senaryolarımız olabilir.
1 2 3 4 5 6 7 8 9 | c = 1 # global değişken def ornek(): c=c+2 print(c) ornek() |
Programın üzerinde çalıştığımızda, çıktı bir hata gösteriyor:
1 2 3 | UnboundLocalError: local variable 'c' referenced before assignment |
Bunun nedeni, yalnızca global değişkene erişebilmemiz, ancak işlevin içinden değiştiremememizdir.
Bunun çözümü global anahtar kelimeyi kullanmaktır.
1 2 3 4 5 6 7 8 9 10 11 | c = 1 # global değişken def ornek(): global c c=c+2 print(c) ornek() |
Çıktısı şu şekilde oluşacaktır.
1 2 3 | 3 |
Python Modüllerinde Global Değişkenler
Python’da, global değişkenleri tutmak ve aynı programdaki Python modülleri arasında bilgi paylaşmak için tek bir modül config.py oluşturuyoruz.
Global değişkeni python modülleri arasında nasıl paylaşabiliriz.
Örnek 4: Genel Değişkeni Python Modüllerinde Paylaşma
Global değişkenleri saklamak için bir config.py dosyası oluşturun
1 2 3 4 | a = 0 b = "önemsiz" |
Global değişkenleri değiştirmek için bir update.py dosyası oluşturun
1 2 3 4 5 6 | import config config.a = 10 config.b = "önemli" |
Değerdeki değişiklikleri test etmek için bir ornek.py dosyası oluşturun
1 2 3 4 5 6 7 | import config import update print(config.a) print(config.b) |
ornek.py dosyasını çalıştırdığımızda çıktı
1 2 3 4 | 10 önemli |
İç İçe Fonksiyonlarda Global
İç içe işlevde genel bir değişkeni nasıl kullanabileceğiniz aşağıda açıklanmıştır.
Örnek 5: İç İçe İşlevde Genel Değişken Kullanma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def foo(): x = 20 def bar(): global x x = 25 print("bar fonksiyonu çağrılmadan: ", x) print("Şimdi çağrılıyor") bar() print("bar çağrıldıktan sonra: ", x) foo() print("x ana bölümde : ", x) |
1 2 3 4 5 6 | bar fonksiyonu çağrılmadan: 20 Şimdi çağrılıyor bar çağrıldıktan sonra: 20 x ana bölümde : 25 |
Yukarıdaki programda, iç içe geçmiş işlev çubuğunun () içindeki genel değişkeni bildiririz. foo() işlevi içinde x’in global anahtar kelimenin etkisi yoktur.
bar() çağrılmadan önce ve sonra x değişkeni yerel değişkenin değerini alır, yani x = 20. foo() fonksiyonunun dışında, x değişkeni bar () fonksiyonunda tanımlanan değeri alır, yani x = 25. çünkü bar() işlevi (yerel kapsam) içinde global değişken oluşturmak için x’de global anahtar kelimesini kullandık.
bar() işlevi içinde herhangi bir değişiklik yaparsak, değişiklikler yerel kapsamın dışında görünür, yani foo().
1 Yorum