Python'da Global Değişkenler Nasıl Kullanılır (global Anahtar Kelime)

Python'da global değişkenlerin nasıl çalıştığını öğrenin. Değişken kapsamını, yerel ve global ad alanlarını ve global anahtar kelimeyi kullanarak değişkenlerin nasıl değiştirileceğini anlayın.

Bu Çözümü Editör'de deneyin

Genel Bakış

Ad alanlarını ve değişken kapsamını anlamak, Python'da hatasız yazılım yazmak için kritik öneme sahiptir. Kapsam, programınızın hangi bölümlerinin bir değişkene erişebileceğini veya değiştirebileceğini belirler. Tüm fonksiyonların dışında bildirilen bir değişken global kapsamda bulunur ve modülün herhangi bir yerinde okunabilir.

Ancak bir fonksiyon global bir değişkeni değiştirmeye (yeniden atamaya) çalıştığında bir sorun ortaya çıkar. Varsayılan olarak Python bir fonksiyonun içinde bir atama gördüğünde değişkenin fonksiyon için yerel olduğunu varsayar. Global bir değişkeni global olarak bildirmeden değiştirmeye çalışırsanız, Python aynı adda yerel bir değişken yaratacak ve global değişkeni değiştirmeden bırakacaktır (veya bir 'UnboundLocalError' yükseltecektir).

Python'a yerel bir değişken oluşturmak yerine global ad alanındaki bir değişkeni değiştirmek istediğinizi açıkça söylemek için, bunu fonksiyonun içindeki 'global' anahtar sözcüğünü kullanarak bildirmeniz gerekir. Global değişkenlerin kullanılması bazen gerekli olsa da, durumu izlemeyi ve hata ayıklamayı zorlaştırdığı için büyük yazılım tasarımında genellikle kötü bir uygulama olarak kabul edilir.

Kod ve Yürütme Çıkışı

Bu komut dosyası, global değişkenleri okumayı, değişken gölgeleme tuzağını ve global anahtar kelimeyi kullanarak global değişkenleri değiştirmeyi gösterir.

global_variables.py
Editör'de deneyin
counter = 10 # Global variable

def read_counter():
    # Reading a global variable works out-of-the-box
    print("Reading global counter:", counter)

def shadow_counter():
    # Attempting to assign without 'global' creates a local variable
    counter = 20 # Shadowing
    print("Inside shadow function:", counter)

def modify_counter():
    global counter # Declaring we are writing to global scope
    counter = 50
    print("Inside modify function:", counter)

read_counter()
shadow_counter()
print("Counter after shadow function:", counter) # Remains 10

modify_counter()
print("Counter after modify function:", counter) # Now 50
Terminal Çıkışı
Reading global counter: 10
Inside shadow function: 20
Counter after shadow function: 10
Inside modify function: 50
Counter after modify function: 50

Adım Adım Uygulama

  • Herhangi bir işlev kapsamı dışında genel olarak erişilmesi gereken değişkenleri bildirin.
  • Özel bildirimler eklemeden herhangi bir işlevin içindeki genel değişkenleri okuyun.
  • Genel değişken değerini değiştirmeniz gerekiyorsa, işlevlerin içindeki global anahtar sözcüğünü (örneğin, global sayaç) kullanın.
  • Kapsam karışıklığını ve ad alanı kirliliğini önlemek için genel değişken kullanımını sınırlayın.

Sıkça Sorulan Sorular

Python'da değişken gölgeleme nedir?

Yerel kapsam içinde bildirilen bir değişken (bir işlev gibi), dış küresel kapsamdaki bir değişkenle aynı ada sahip olduğunda gölgeleme meydana gelir. Yerel değişken global değişkeni maskeleyerek bu kapsamda geçici olarak erişilemez olmasını sağlar.

Küresel ve yerel olmayan anahtar kelimeler arasındaki fark nedir?

global, en dıştaki modül kapsamında tanımlanan değişkenlere erişmek için kullanılır. yerel olmayan, çevreleyen (dış) işlev kapsamında tanımlanan değişkenlere erişmek için iç içe geçmiş işlevlerin içinde kullanılır.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.