Fonksiyonların içinde ve dışında tanımlanan aynı isimdeki değişkenler birbirinden farklı değerleri tutabilir.
x = "Yasin" # Global olarak tanımlanmış bir x değişkeni
def fnkIsim():
x = "Ercüment" # Local olarak tanımlanmış bir x değişkeni.
print(x) # Burada fnkIsim() fonksiyonunun içindeki x değişkeninin değeri (Ercüment) ekrana yazdırılır. Fonksiyon içinde x değişkeni tanımlanmasaydı, print() fonksiyonu bir üstteki x değişkeninin değerini (Yasin) ekrana yazdıracaktı.
fnkIsim() # fnkIsim() fonksiyonu çağırılıyor.
print(x) # Burada global olarak tanımlanmış x değişkeni ekrana yazdırılır.
Örnek 1 :
a = 100
def fnkA(a):
print("1-) a = ",a) # Yukarıda tanımlanmış global a değişkeninin değerini (100) ekrana yazar.
a= 200
print("2-) a = ",a) # Bir üst satırdaki a değişkeninin içerisindeki değeri (200) ekrana yazar.
fnkA(a)
print("3-) a = ",a) # fnkA() fonksiyonu dışında olduğundan fonksiyon içindeki değişiklikler (a = 200) burada etkisizdir. Bu yüzden ekrana 100 yazar.
Dışarıda veya içeride tanımlanan değişkenlerin aynı değeri alması istiyorsak global olarak tanımlamalıyız.
a = 100
def fnkA():
global a # Yukarıda tanımlanan a değişkenin içeride kullanılan a değişkeni ile aynı olmasını sağlar. Artık a değişkeni bir adettir.
print("1-) a = ",a) # Yukarıda tanımlanmış global a değişkeninin değerini (100) ekrana yazar.
a= 200
print("2-) a = ",a) # Bir üst satırdaki a değişkeninin içerisindeki değeri (200) ekrana yazar.
fnkA()
print("3-) a = ",a) # Fonksiyon içindeki a değişkeni ile dışındaki a değişkeni aynı olduğundan ekrana 200 yazar.