Tekrar hoş geldiniz.
Aklınıza gelebilecek bazı soruları yanıtlamaya çalışalım.
Örneğin, parametreler ne olacak?
Eğer parametre yaparsam?
Burada B diyelim.
B'yi bu şekilde kullandığımda bu parametre nedir?
Yani baskı diyelim.
Ol.
Ve burada, diyelim ki 300 sayısıyla bir karışıklık yaşayacağım.
Eğer bunu çalıştırırsam.
Bu işe yarıyor.
Bunun nedeni, B parametresinin yerel kapsamın bir parçası olmasıdır.
Yani, bunun bir parçası.
Dolayısıyla parametreler yerel değişkenler olarak kabul edilir.
Fonksiyon içinde kullanabiliyoruz, ancak bu fonksiyonların dışında kullanamıyoruz.
Teknik olarak fonksiyonu tanımladığımızda, yorumlayıcıya B'nin yerel bir değişken olacağını bildirmiş
oluruz.
Peki ya bu?
Ya elimizde bu varsa?
A Ancak fonksiyonumun içinde aslında global A'ya atıfta bulunduğumdan emin olmak istiyorum.
Yeni bir değişken oluşturmadan sadece bu değeri kullanmamızın bir yolu var mı?
Bunun için daha iyi bir örnek kullanalım.
Diyelim ki bir sayaç oluşturmak istiyorum.
Yani toplam sıfıra eşit olacak.
Ve sonra burada.
Sayımı tanımla diyeceğim.
Ve bu fonksiyon toplamı söyleyecektir.
Artı eşittir bir.
Bu nedenle, sayıyı her eklediğimizde, sıfır bir artacak ve sonra bir bir artacak,
bu böyle devam edecek.
Yani bunun sonunda toplamı döndüreceğiz.
Yani buraya koşarsam, baskı sayımı.
Bakalım neler olacak.
Vuracağım.
Koş.
Ve atamadan önce başvurulan yerel değişken toplamda bir hata alıyorum ve bunun nedeni kuyu sayımının toplamı
bilmemesi.
Toplamı kullanmaya çalışıyorsunuz ama henüz bir şey atamadık.
Ancak dış dünyadan gelen toplamın çalışmasını istiyoruz.
Çünkü burada toplam eşittir sıfır yaparsam ve sayımı çalıştırırsam.
Bu harika.
Bir tane buldum.
Peki ya bir sayımı birden fazla kez çalıştırmak istersem?
Sayım toplamının üç olması için diyelim ki üç kez sayım yapmak istersem ne olur?
O halde sonuncusunun çıktısını alalım.
Ve Çalıştır'a tıklıyorum.
Hala bir tane alıyorum çünkü fonksiyonu her çalıştırdığımızda toplamı sıfırlıyoruz.
Bu pek kullanışlı değil, değil mi?
Bunu düzeltmenin bir yolu, Python'da global anahtar sözcüğü dediğimiz şeyi kullanmaktır.
Ve global, burada varsa global toplamı kullan diyor, böylece yeni bir değişken oluşturmak zorunda kalmak yerine
global toplam değişkenini kullanabiliyorum.
Şuna bir bak.
Geçersiz bir sözdizimi alıyorum ve bunun nedeni, önce burada küresel toplamın kullanılacağını
söylememiz ve ardından toplam artı eşittir bir diyebilmemizdir.
Eğer bunu çalıştırırsam.
Şuna bir bak.
Uygun bir sayacımız var, bu nedenle global, bu global değişkene erişmemiz için bir yoldur.
Ancak bunun aslında iyi bir yol olmadığını savunuyorum çünkü globaller eklemeye başladığınızda ve tüm bu
farklı evrenler birbirlerinin değişkenlerine eriştiğinde gerçekten kafa karıştırıcı olabilir.
Bunu yapmanın daha iyi bir yolu bağımlılık enjeksiyonu denilen bir şeydir ve bu onun basitleştirilmiş bir versiyonudur.
Ancak buradaki fikir, fonksiyon dışındaki değişkenlere bu şekilde erişmek yerine, ki dosyalar
büyüdükçe gerçekten çok karmaşık hale gelebilir, bunu yapmaktır.
Bu.
Toplam.
Bunun gibi, bir parametre oluştururuz ve sonra bu parametreyi geçiririz.
Ya da burada tartışmak.
Ancak gördüğünüz gibi, hala bir, çünkü üçüncü toplamı yazdırdığımızda, bu asla değişmez.
Bu küresel bir sıfırdır.
Bunun yerine şöyle bir şey yapabiliriz.
Tekrar sayacağımız toplamı say diyebiliriz.
Ve sonra tekrar say.
Eğer bunu çalıştırırsam.
Ben üç tane aldım.
Ve ne düşündüğünü biliyorum.
Bu tamamen delilik.
Kafa karıştırıcı görünüyor.
Şu parantezlere bak.
Ama size gerçekte ne yaptığımızı göstereyim.
Bu sayım işlevinin dış küresel kapsam üzerindeki bağımlılığını veya etkisini ortadan kaldırabilir ve bunun yerine
sadece sağlığına odaklanabiliriz.
Tek yapmamız gereken, "Hey, toplamı sıfır olan bir sayı vermeni istiyorum" demekti.
Ve bundan sonra, bu bire kadar değerlendirilecek.
Ve sonra bir artı bir toplamı ikiye eşit olacak şekilde sayıyoruz ve sonra iki artı bir toplamı üçe eşit olacak
şekilde sayıyoruz.
Ve bu şekilde, küresel anahtar kelimeyi kullanmak zorunda kalmadan sayımımızı yapmaya devam edebiliyoruz, ki bunun daha güzel olduğunu
iddia ediyorum.
Unutmayın, eğer bunu ilk kez görüyorsanız, biraz zor olabilir.
Ama en azından bu şekilde, işleri yapmanın farklı yolları olduğunu biliyorsunuz.
Size göstermek istediğim bir diğer kelime de yerel olmayan diye bir şey.
Ama bunun için bir ara verelim ve bir sonraki videoda görüşmek üzere.