Python nonlocal nedir, nonlocal değişkenleri, kapsamlar arası değişken aktarımı ve nonlocal kullanım örnekleri ile ilgili genel bir bakış.
Python nonlocal Nedir?
İçerikler
Python nonlocal, global ve yerel kapsamlar arasında değişken aktarımı yapmak için kullanılan bir değişken türüdür. nonlocal değişkenleri, bir iç içe kapsam yapısındaki yerel kapsam dışındaki bir değişkeni değiştirmek veya kullanmak için kullanılır.
nonlocal anahtar kelimesi, bir işlevin içerisinde global kapsamda tanımlanmış bir değişkenin değerini değiştirmek için kullanılır. Bu sayede iç içe geçmiş kapsamlar arasında veri iletimi sağlanabilir.
nonlocal değişkenler, genellikle bir iç içe geçmiş fonksiyonun yerel değişkenini değiştirmek için kullanılır. Bu sayede, yerel kapsamda tanımlı bir değişkeni dış kapsamdaki değişkenle ilişkilendirebilir ve değiştirebiliriz.
nonlocal değişkenlerin kullanım örnekleri arasında genellikle iç içe geçmiş fonksiyonlardaki yerel kapsamdaki değişkenlerin dış kapsama etki etmesi yer almaktadır. Böylece, dış kapsamdaki değişkenin değerini değiştirebilir ve programın genel akışına etki edebiliriz.
Örnek Kullanım | Açıklama |
---|---|
nonlocal değişken_adi | İç içe fonksiyonlardaki yerel değişkenin dış kapsamla ilişkilendirilmesi |
nonlocal değişken_adi = deger | Dış kapsamdaki değişkenin değerinin değiştirilmesi |
nonlocal Değişkenleri
Python programlama dilinde, nonlocal değişkenleri, bir iç içe fonksiyonun içindeki değişkenlerin üst kapsamdaki fonksiyonun değişkenleriyle etkileşim halinde olmasını sağlar. Yani, nonlocal ifadesiyle belirtilen değişken, en yakın yerel kapsamın dışındaki ancak global kapsama ait olmayan bir değişkeni tanımlar.
nonlocal değişkenlerinin kullanımı, programın modüler hale gelmesini sağlar. Özellikle iç içe fonksiyonlar arasında veri akışı ve değişimini kolaylaştırır. Bir nonlocal değişkeni, bir iç fonksiyon içinde tanımlanır ve bu değişkenin bir üst fonksiyonda yeniden tanımlanmasını sağlar. Böylece, bu değişken yalnızca iç fonksiyon içinde görünür hale gelir.
Aşağıdaki tabloda nonlocal değişkenlerinin kullanımı hakkında bazı örnekler verilmiştir. Bu örnekler, nonlocal değişkenlerinin farklı kapsamlara nasıl etki ettiğini göstermektedir.
Kod Örneği | Açıklama |
---|---|
def dis_fonksiyon(): x = 10 def ic_fonksiyon(): nonlocal x x += 5 print(İç fonksiyonun içinde x:, x) ic_fonksiyon() print(Dış fonksiyonun içinde x:, x) | İç fonksiyon içindeki nonlocal değişkenin, dış fonksiyonun değişkenini etkilediği örnek. |
Kapsamlar Arası Değişken Aktarımı
Python nonlocal anahtar kelimesi, bir değişkenin kapsamı dışındaki bir değişkene yapılan atamayı belirtir. Bu durumda, diğer ana fonksiyon veya yöntemlerde kullanılamayan bir değişken, nonlocal anahtar kelimesi sayesinde kapsamlar arası değişken aktarımı yapılarak kullanılabilir.
Örneğin;
değişken = 10
def fonksiyon2():
nonlocal değişken
değişken = 20
Burada, fonksiyon2 içerisinde nonlocal anahtar kelimesi ile değişkenin değeri değiştirilmiş ve bu değişiklik, kapsam dışındaki fonksiyona da yansımıştır.
nonlocal Kullanım Örnekleri
Python programlama dili, kapsamlar arası değişken aktarımı için nonlocal anahtar kelimesini kullanır. Bu anahtar kelime, iç içe geçmiş fonksiyonlarda bulunan yerel bir değişkenin, onun bulunduğu kapsamın dışındaki bir kapsamdaki değerini değiştirmek veya çağırmak için kullanılır.
Örneğin, bir iç içe geçmiş fonksiyonun içinde bulunan bir yerel değişkenin, onun bulunduğu kapsamın dışındaki bir kapsamdaki değerini değiştirmek için nonlocal anahtar kelimesi kullanılır. Bu sayede fonksiyonlar arasında değişken değerlerini aktararak kullanabiliriz.
nonlocal anahtar kelimesi genellikle sık kullanılmasa da, belirli durumlarda oldukça faydalı olabilir. Özellikle iç içe geçmiş fonksiyonlarda, bir değişkenin değerini değiştirmek veya çağırmak için kullanılır. Bu sayede kodun okunabilirliği artar ve gereksiz global değişken kullanımından kaçınılır.
Python’da nonlocal anahtar kelimesi, kapsamlar arası değişken aktarımını oldukça basit hale getirir. Bu sayede koddaki hata olasılığını azaltarak, daha düzenli ve okunabilir bir yazılım oluşturabiliriz.