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, Yerel ve Yerel Olmayan Değişkenler hakkında bazı temel bilgilere sahip olduğunuzdan emin olun.
Global anahtar kelime nedir
Python'da global
anahtar sözcük, değişkeni geçerli kapsamın dışında değiştirmenize izin verir. Global bir değişken oluşturmak ve değişkeni yerel bir bağlamda değiştirmek için kullanılır.
Global Anahtar Kelime Kuralları
global
Python'da anahtar kelime için temel kurallar şunlardır:
- Bir fonksiyonun içinde bir değişken yarattığımızda, bu varsayılan olarak yereldir.
- Bir fonksiyonun dışında bir değişken tanımladığımızda, varsayılan olarak globaldir.
global
Anahtar kelime kullanmak zorunda değilsiniz . global
Bir fonksiyonun içindeki global bir değişkeni okumak ve yazmak için anahtar kelimeyi kullanırız .- Kullanımı
global
bir fonksiyonu dışında anahtar kelime etkisi yoktur.
Global Anahtar Kelime Kullanımı
Bir örnek alalım.
Örnek 1: Bir Fonksiyonun İçinden Global Değişkene Erişim
c = 1 # global variable def add(): print(c) add()
Yukarıdaki programı çalıştırdığımızda çıktı şöyle olacaktır:
1
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ştirme
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:
UnboundLocalError: atamadan önce başvurulan yerel değişken 'c'
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 Değiştirme
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ı şöyle olacaktır:
İçeride ekle (): 2 Ana olarak: 2
Yukarıdaki programda, c'yi add()
fonksiyonun içinde global bir anahtar kelime olarak tanımlıyoruz .
Daha sonra c değişkenini 1
yani, artırıyoruz c = c + 2
. Bundan sonra add()
fonksiyonu çağırıyoruz . Son olarak, global değişken c'yi yazdırıyoruz.
Gördüğümüz gibi, fonksiyonun dışındaki global değişkende de değişiklik meydana geldi c = 2
.
Python Modülleri Arasında Global Değişkenler
Python'da, config.py
global değişkenleri tutmak ve bilgileri aynı program içindeki Python modülleri arasında paylaşmak için tek bir modül oluşturuyoruz .
İşte global değişkenleri python modülleri arasında nasıl paylaşabiliriz.
Örnek 4: Python Modülleri Arasında global bir Değişkeni Paylaşın
config.py
Global değişkenleri depolamak için bir dosya oluşturun
a = 0 b = "empty"
update.py
Global değişkenleri değiştirmek için bir dosya oluşturun
import config config.a = 10 config.b = "alphabet"
Değerdeki main.py
değişiklikleri test etmek için bir dosya oluşturun
import config import update print(config.a) print(config.b)
main.py
Dosyayı çalıştırdığımızda çıktı
10 alfabe
Yukarıdaki, biz üç dosya oluşturduk: config.py
, update.py
, ve main.py
.
Modül config.py
, a ve b'nin global değişkenlerini depolar. Gelen update.py
dosyanın biz ithal config.py
modülü ve a ve b değerlerini değiştirin. Benzer şekilde, içinde main.py
dosyanın, biz de ithal config.py
ve update.py
modül. Son olarak, değiştirilmiş olsun ya da olmasın global değişkenlerin değerlerini yazdırıp test ediyoruz.
İç İçe İşlevlerde Global
İç içe geçmiş işlevde bir global değişkeni nasıl kullanabileceğiniz aşağıda açıklanmıştır.
Örnek 5: İç İçe İşlevde Global Değişken Kullanma
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ı:
Aramadan önce: 20 Arama engelleme şimdi engelleme Aramadan sonra: 20 x esas olarak: 25
Yukarıdaki programda, iç içe geçmiş fonksiyonun içinde global bir değişken tanımladık bar()
. Inside foo()
işlevi, x'in global anahtar sözcüğü üzerinde etkisi yoktur.
Çağırmadan önce ve sonra bar()
, x değişkeni yerel değişkenin değerini yani yani x = 20
. foo()
Fonksiyonun dışında, x değişkeni, bar()
yani fonksiyonda tanımlanan değeri alacaktır x = 25
. Bunun nedeni global
, bar()
işlev içinde (yerel kapsam) global değişken oluşturmak için x'te anahtar sözcük kullanmış olmamızdır .
bar()
İşlevin içinde herhangi bir değişiklik yaparsak , değişiklikler yerel kapsamın dışında görünür, yani foo()
.