Pekala, küçük bir oyun oynayalım.
Bu programın çıktısının ne olacağını tahmin edebilir misiniz?
Burada eşit bir tane var.
Daha sonra confusion adında bir fonksiyon oluşturuyoruz, burada a beşe eşit oluyor ve a değerini döndürüyoruz.
Sorum şu: A'yı bastığımızda ve karışıklığı bastığımızda, burada ne olmasını bekliyorsunuz?
Gerekirse duraklamayı anlamak için bir saniyenizi ayırın.
Ve öğrenelim.
Bir ve beş.
Beklediğin bu muydu?
Hadi gidelim.
Satır satır.
Önce A değişkenine bir değerini atıyoruz, daha sonra confusion adında bir fonksiyon oluşturuyoruz ve python yorumlayıcısı şöyle diyecek: Pekala,
confusion, fonksiyon.
Ne olduğunu biliyorum.
Hafızaya alacağım.
Beni kullanmanız gerektiğinde, haber verin yeter.
Ve sonra sekizinci satıra gidecek ve sekizinci satır diyecek ki, hey, a'yı yazdır, a nedir,
a'yı gördüğüm tek zaman tam burada a eşittir bir.
Hafızaya girin, diyelim ki A eşittir bir.
Ama sonra böyle bir karışıklık yaşadığımda.
Diyeceğim ki, hey, a beşe eşit olacak ve şimdi beş olan A'yı döndürüyoruz.
OC Bunun sırasını değiştirirsem ne olur?
Ya böyle yaparsam?
Çalıştır'a tıklarsam ne olur?
Beklediğin bu muydu?
Bir kez daha, bir eşitimiz var.
Daha sonra fonksiyonu tanımlarız ve ardından karışıklığı yazdırırız.
Şimdi buradaki karışıklık a'yı beşe eşit olarak atayacak ve sonra a'yı döndürecektir.
Ama bu neden değişmedi?
Neden buraya geldiğimizde bir hala bire eşit oluyor?
Bunun nedeni de kapsam, değil mi?
Python yorumlayıcısının yaptığı şey, karışıklık işlevini çalıştırdığında, hey, a beşe eşit
olacak diyecektir.
Ama ben burada kendi evrenimde A adında bir değişken yaratıyorum.
Buradaki eşitler hakkında bir şey bilmiyorum.
Benim kendi evrenim var.
Ve bu fonksiyonu çalıştırdıktan sonra, işimiz biter.
Fonksiyonu iade ettik ve tamamen gitti.
Ancak evreni hiçbir zaman küresel kapsama bırakmadık.
Yani Python yorumlayıcısının bir değişkeni kontrol etmek için geçtiği bir dizi kural vardır.
Ve kurallar şöyle.
İlk olarak, yerel ile kontrol edecek.
Bu yüzden yerelden başlayın.
Ve bizim yerel kapsam dediğimiz şey.
Yerel kapsam, bu yerel işlevin bir parçası olan bir kapsamdır.
Yani a yerel bir kapsamdır.
Orayı kontrol edecek.
Hey, değişkeni biliyor muyum?
Evet, döndüğümde.
A Burada tanımlanmış bir değişkenim var, bu yüzden oradan başlıyor.
Ama diyelim ki A orada değildi, diyelim ki a'yı kaldırdım ve burada çalıştır'a tıkladım.
Her ikisini de bir kez alıyorum çünkü ikinci kural, yerel değişkende veya yerel kapsamda hiçbir şey
yoksa, o zaman iki numara, bir üst yerel kapsam var mı?
Bizim durumumuzda, bu fonksiyonun üst öğesi nedir?
Bu küresel bir kapsam.
Ancak başka bir işlev de yapabiliriz.
Diyelim ki ebeveyn ve ebeveyn, karışıklık fonksiyonunun bir ebeveynidir.
Ve burada, A'nın 10'a eşit olduğunu varsayalım.
Şimdi burada.
Geri döneceğiz.
Sadece tekrar kullanabilmek ve gerçekten çalıştırabilmek için kafa karışıklığı.
O zaman ebeveyni arayalım.
Ve Çalıştır'a tıklayın.
Pekala, şunun üzerinden geçelim.
Yani çok kafa karıştırıcı değil.
Çağrılan bir üst fonksiyonumuz var.
Yani bunu çağırdığımızda, ona bir eşit atarız.
Ayrıca yeni bir işlev karışıklığı da yaratıyoruz.
Ve nihayetinde kafa karışıklığına geri dönüp onu gerçekten çalıştırıyoruz.
Bu yüzden a değerini döndüreceğiz ve sonra burada A'nın değeri neyse onu yazdıracağız, ki bu değer ondur.
Neden peki?
Çünkü ilk olarak yerel kapsamla başlıyoruz.
Hey, karışıklık a'nın ne olduğunu biliyor mu?
Hayır.
Yerel kapsamımda yok.
OC ebeveynimin yerel okulunda var mı?
Bu yüzden bir seviye yukarı çıkacak ve şöyle diyecek: Hey, ebeveyn işlevi a'nın ne olduğunu biliyor mu?
Evet, 10'a eşit bir sayım var, o yüzden bunu basacak.
Üçüncü kural ya da üçüncü emir küreseldir.
Ve küresel, hiçbir şeyin girintisi dediğimiz şeydir.
Bu dosya, değil mi?
Dosyada ne varsa, bu küreseldir.
Bizim durumumuzda, A eşittir on burada mevcut değilse, yerel yoktur, ebeveyn yerel yoktur.
Ve koş'a tıklıyorum.
Küresel kapsamı kontrol eder.
Ve son olarak, bir kural daha var ve bu dört numara ve zor bir kural.
İşte biz buna yerleşik Python diyoruz.
Ya da yerleşik python fonksiyonları.
Yani Python aşağıdaki gibi önceden tanımlanmış fonksiyonlarla birlikte gelir?
Daha önce konuştuğumuz toplam.
Bu biraz, diyelim ki, sadece beş verelim.
kontrol edecek mi yoksa aslında, ona hiçbir şey vermeyelim.
Burada biraz yapalım.
Bunu çalıştırdığımda.
Bazı işlevleri yerleşik olarak alıyorum.
Şimdi.
Bunun ne olduğunu nereden biliyorlardı?
Günün sonunda bu değişken neydi?
Şey, çünkü dedi ki, hey, bu evrenin içinde biraz var mı?
Hayır.
Bilmiyorum.
Ana kapsamımda biraz var mı?
Hayır, yok.
Globalde biraz var mı?
Hayır.
Burada toplam bir şey yok.
Ve sonra kontrol edeceği son şey, hey, bir çeşit yerleşik Python işlevi var mı?
Evet.
Python aslında bize biraz verir, böylece hata vermemesi için kullanabilirsiniz.
Bu da Python yorumlayıcısının izlediği kapsam kurallarıdır.
Çok, çok havalı.
Hâlâ öğrenmemiz gereken birkaç şey daha var.
Bir sonraki videoda görüşürüz.