Aman Tanrım.
Ekranda bazı kodlar var ve son derece kafa karıştırıcı görünüyor.
Bu, asla yazmayacağınız, gerçekten karmaşık bir fonksiyon örneğidir, ancak alıştırma yapmak
için iyi olacaktır.
Ve burada özellikle Non Local adı verilen bu konudan bahsediyoruz.
Aslında Python 3'te yeni bir anahtar kelime.
Ve gördüğünüz gibi, dalgacığım bunu fark etmiyor bile.
Bu yüzden yeni bir özellik olduğu için mavi renkle bile vurgulanmıyor.
Ama sizinle bu konu hakkında konuşmak ve ne işe yaradığını anlatmak istiyorum.
Yerel olmayan anahtar sözcüğü bu parçaya, bu üst yerel parçaya atıfta bulunmak için kullanılır.
Bu, "Hey, global bir değişken olmayan ancak fonksiyonumun kapsamı dışında olan bir değişkeni kullanmak istiyorum"
dememizin bir yoludur.
Bu tanıma dayanarak, videoyu duraklatmayı deneyin ve bu işlevin ne yapabileceğini görün.
Şimdi çalıştıracağım ve sonra kodu gözden geçireceğim.
Çalıştır'a tıklarsam.
Elde ettiğimiz şey bu.
Bu konu hakkında konuşalım.
Bir dış fonksiyonumuz var ve sonra dış fonksiyonu çağırıyoruz.
Python yorumlayıcısı gidip şöyle diyecek: Pekala, dış fonksiyon için yerel olan
bir X değişkenimiz var.
Ve sonra burada bir iç fonksiyon, başka bir fonksiyon tanımlayacağız.
Ve burada, bunu çağırmadan önce, dokuzuncu satıra atlıyoruz ve diyoruz ki, tamam, iç fonksiyonu çağır.
Geri dönüyoruz ve diyoruz ki, Hey, beşinci satır, yerel olmayan X'i kullanmak istiyorum.
Bu ne anlama geliyor?
Bu x değişkenini kullanmak istiyorum çünkü yerel değil, yani yeni bir x değişkeni oluşturmak istemiyorum.
Kapsamı üst kapsamıma, üst yerelime atlamak ve orada ne bulursanız almak istiyorum.
Küresel değişken olmadığı sürece herhangi bir ebeveyn işinizi görecektir.
O yerel olmayan şeyi almak istiyorum.
Şimdi bu x burada dış fonksiyona atıfta bulunuyor.
Yani x eşittir yerel olmayan dediğimizde, bu yeni dizeyi atamış oluyoruz.
Ve bunu yerel olarak değiştirerek, x'i yazdırdığımızda yerel olmayan bir sonuç elde ederiz, ancak aynı zamanda
dış x'i yazdırdığımızda, bu dış kapsamı yerel olmayan anahtar sözcükle değiştirdik, böylece bu da yerel olmaz.
Bu satırı kaldırırsam ve yorumlayıp Çalıştır'a tıklarsam.
Farkı görüyor musun?
Şimdi iç yerel olmayan değişkenimiz var, ancak bu yeni bir değişken olduğu için dış yerel değişken değiştirilmedi.
Yine, bunun aslında kodunuzu olması gerekenden daha karmaşık hale getirdiğini iddia ediyorum.
Dolayısıyla, bunu kullanmak isteyebileceğiniz özel durumlar vardır, ancak yerel olmayan ve global gibi şeyleri kullanmaktan
kaçınabileceğiniz kodunuzu öngörülebilir hale getirmeye çalışabilirsiniz.
Unutmayın, bazı durumlarda yararlı oldukları için orada bulunmalarının bir nedeni vardır.
Bununla birlikte, aklınızda tutun, kodunuzu öngörülebilir hale getirin, kodunuzu temiz hale getirin ve bir sonraki videoda
görüşmek üzere.