Bu makalede, Python Global Değişken, Yerel Değişken, Yerel Olmayan Değişken ve bunların nerede kullanılacağı hakkında bilgi edineceksiniz.
Global Değişkenler
Python’da, fonksiyonun dışında veya global kapsamda bildirilen bir değişken global değişken olarak bilinir. Bu, global değişkene fonksiyonun içinde veya dışında erişilebileceği anlamına gelir.
Python’da küresel bir değişkenin nasıl oluşturulduğuna dair bir örnek görelim.
1 2 3 4 5 6 7 8 9 | x = "global" def foo(): print("x içeride :", x) foo() print("x dışarıda:", x) |
Çıktı:
1 2 3 4 | x içeride : global x dışarıda: global |
Yukarıdaki kodda, x’i global değişken olarak oluşturduk ve global değişkeni x yazdırmak için bir foo () tanımladık. Son olarak, x değerini yazacak olan foo () ‘yu çağırırız.
Bir işlevin içindeki x değerini değiştirmek isterseniz ne olur?
1 2 3 4 5 6 7 8 | x = "global" def foo(): x = x * 2 print(x) foo() |
Hata Mesajı
1 2 3 | UnboundLocalError: local variable 'x' referenced before assignment |
Python x’i yerel bir değişken olarak ele aldığından ve x de foo () içinde tanımlanmadığından çıktı bir hata gösterir.
Bu işi yapmak için global anahtar kelime kullanıyoruz.
Yerel Değişkenler
İşlevin gövdesi içinde veya yerel kapsamda bildirilen bir değişken yerel değişken olarak bilinir.
Örnek 2: Kapsam dışındaki yerel değişkenlere erişim
1 2 3 4 5 6 7 | def foo(): y = "local" foo() print(y) |
Hata çıktısı:
1 2 3 | NameError: name 'y' is not defined |
Çıktı bir hata gösteriyor, çünkü global bir kapsamda yerel bir y değişkenine erişmeye çalışırken, yerel değişken sadece foo () veya yerel kapsam içinde çalışıyor.
Python’da yerel bir değişkenin nasıl oluşturulduğuna dair bir örnek görelim.
Örnek 3: Yerel Değişken Oluşturma
Normalde, yerel değişken oluşturmak için işlevin içindeki bir değişkeni bildiririz.
1 2 3 4 5 6 7 | def foo(): y = "local" print(y) foo() |
Çıktı:
1 2 3 | local |
Global ve yerel değişkenler
Burada global değişkenlerin ve yerel değişkenlerin aynı kodda nasıl kullanılacağını göstereceğiz.
Örnek 4: Genel ve Yerel değişkenleri aynı kodda kullanma
1 2 3 4 5 6 7 8 9 10 11 12 | x = "global" def foo(): global x y = "local" x = x * 2 print(x) print(y) foo() |
Çıktı:
1 2 3 4 | globalglobal local |
Yukarıdaki kodda, x değerini global ve y değerini foo () öğesinde yerel değişken olarak ilan ederiz. Daha sonra, global değişkeni x değiştirmek için çarpma operatörü * kullanıyoruz ve hem x hem de y’yi yazdırıyoruz.
Foo () yöntemini çağırdıktan sonra, x değeri global global olur çünkü iki kez global yazdırmak için x * 2 kullandık. Bundan sonra, y yerel değişkeninin değerini yazdırırız.
Örnek 5: Genel değişken ve aynı ada sahip Yerel değişken
1 2 3 4 5 6 7 8 9 10 | x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x) |
Çıktı:
1 2 3 4 | local x: 10 global x: 5 |
Yukarıdaki kodda, global değişken ve yerel değişken için aynı adı x kullandık. Aynı değişkeni yazdırdığımızda farklı sonuç elde ederiz, çünkü değişken her iki kapsamda da bildirilir, yani foo () içindeki yerel kapsam ve foo () dışındaki global kapsam.
Değişkeni foo () içine yazdırdığımızda yerel x: 10 çıktısı verir, buna değişken değişken kapsamı denir.
Benzer şekilde, değişkeni foo () dışında yazdırdığımızda global x: 5 çıktısı verir, buna değişken değişken kapsamı denir.
Yerel Olmayan Değişkenler
Yerel olmayan değişken, yerel kapsamı tanımlanmamış iç içe işlevde kullanılır. Bu, değişkenin ne yerel ne de küresel kapsamda olabileceği anlamına gelir.
Python’da küresel bir değişkenin nasıl oluşturulduğuna dair bir örnek görelim.
Yerel olmayan değişken oluşturmak için yerel olmayan anahtar kelime kullanırız.
Örnek 6: Yerel olmayan bir değişken oluşturma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def outer(): x = "local" def inner(): nonlocal x x = "local olmayan" print("iceride:", x) inner() print("dışarıda:", x) outer() |
Kodu çalıştırdığımızda çıktısı:
1 2 3 4 | iceride: local olmayan dışarıda: local olmayan |
Yukarıdaki kodda iç () iç içe bir işlev vardır. Yerel olmayan değişken oluşturmak için yerel olmayan anahtar kelime kullanırız. İnner () işlevi, dış () işlevinin başka bir işlevi kapsamında tanımlanır.
Not: Yerel olmayan değişkenin değerini değiştirirsek, değişiklikler yerel değişkente görünür.
2 Yorum