Python'da Kapsam Alanlarıyla Çalışmanın Nüansları
Yerel ve global değişkenlerle çalışmanın önemli nüanslarını ele alalım.
Bir tane global <num değişkenimiz olduğunu varsayalım.
Global <num'yi konsola yazdıracak bir <func
fonksiyonu oluşturalım:
num = 1
def func():
print(num)
func() # 1 yazdırır
Şimdi fonksiyonun içinde, <print satırının altına yerel bir <num tanımlayalım.
Kod çalıştırıldıktan sonra konsola bir hata yazdırılacak.
Bunun nedeni, Python'un fonksiyon içinde <num'yi
sadece henüz tanımlanmamış bir yerel değişken olarak algılamasıdır:
num = 1
def func():
print(num) # hata verir
num = 2
Şimdi fonksiyonun içindeki kodu, <num değişkeninin değerinin
<2 artacak şekilde yeniden yazalım:
num = 1
def func():
num += 2 # hata verir
Hatanın nedeni, <num += 2 ifadesinin
aslında şu şekilde yazılabilmesidir:
num = num + 2
Ancak, üzerine ekleme yapılan yerel değişkenin kendisi henüz tanımlanmamıştır. Ve buna bağlı olarak Python, bir sayının var olmayan bir değere eklenemeyeceği için hata verir.
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)