Ope'nin dört sütunu olduğunu biliyoruz ve kapsülleme hakkında bilgi edindik.
İkincisi ne?
Buna soyutlama deniyor.
Soyutlama ise bilginin saklanması ya da bilginin soyutlanması ve sadece gerekli olana erişim sağlanması
anlamına gelir.
Yani kullanıcı, programcı ya da makine neyle ilgileniyorsa, geri kalan her şeye erişim
verdiğimiz tek şey bu.
Kullanıcılarımız bu konuda endişelenmek zorunda kalmasın diye bunu kaputun altındaki bir battaniyenin içine saklıyoruz.
Size ne demek istediğimi göstereyim.
Eski örneğimize dönecek olursam.
Yani bir sözlük yerine, aslında bir sürü yöntemi olan bir oyuncu karakterimiz var.
Şimdi soyutlama aslında burada görülebilir, değil mi?
Ben oyuncu olduğumda bir nokta konuşur.
Soyutlamayı iş başında görüyorsunuz çünkü Çalıştır'a tıkladığımda.
Bu içkiyi alıyorum, ancak speak dediğimde, speak'un nasıl uygulandığı gerçekten umurumda değil.
Tek bildiğim, bir oyuncunun konuşma yöntemine erişimi olduğu ve bunu kullanabileceğim.
Tuple gibi bir şey kullandığımda da aynı şekilde.
Doğru.
Bir, iki, üç varsa ve burada nokta yaparsam, tuple'da kaç öğe olduğunu saymak için count yapabilirim.
Yani yazdırıp çalıştır'a tıklarsam.
Aradığımız şeyi vermek zorundayım.
Bizim durumumuzda, bir tanesine bakalım ve buraya bir tane daha ekleyelim.
Çalıştır'a tıklarsam.
Ben de anlıyorum.
Şimdi, sayım yönteminin nasıl uygulandığını bilmem gerekiyor mu?
Hayır.
Yani, gidip bakabilirim.
Python belgelerine, belki de Python koduna bakabilir ve bunları gerçekte nasıl saydığını anlayabilirim.
Ama gerçekten ihtiyacım yok.
Doğru.
Her bir küçük parçayı anlamaya çalışırsak, kafamız patlayacak.
Bazen tek ihtiyacımız olan bir yöntem ya da niteliktir ve nasıl uygulandığı konusunda endişelenmemize
gerek kalmadan ona erişmek gerçekten çok güzeldir.
Aynı şey yerleşik işlevler için de geçerli, değil mi?
Burada uzunluk yaparsam ve çalıştır'a tıklarsam.
Dört uzunluk elde ediyorum, ancak Python'da uzunluğun nasıl uygulandığını bilmeme gerçekten gerek yok.
Bizden soyutlanmış.
Bu da OP'nin gücüdür.
Önemsememiz gerekmeyen şeyleri soyutlar veya en azından bizi daha verimli hale getirir, böylece belirli bir
şekilde çalıştığını biliriz ve sıfırdan öğrenmek veya kodlamak için zamanımızı boşa harcamayız.
Örneğin iPhone'umuz olsaydı, iPhone'daki kamera özelliği, geliştirdiğimiz bir uygulamanın bunu kullanması
için güzel olurdu, ancak iPhone kamerasının bir iPhone notunda nasıl kaplandığını tam olarak bilmemiz
gerekmez.
Bunun yerine, iPhone bize genellikle Kamera, nokta, çek demenin bir yolunu sunuyor.
Resim.
Apple mühendislerinin aslında kamerayı nasıl kodladığını bilmeden fotoğraf çekmemize izin vermek.
Yani bu çok güçlü bir kavram.
Yani diyorsunuz ki, sanırım soyutlama yapacağım.
Ama size şunu sormama izin verin.
Sadece birinci oyuncuyu yapabilir miyim?
Nokta adı, diyelim ki ünlem işaretlerine ve ardından oyuncu nokta koşusuna eşittir.
Ya da ne biliyor musun?
Boo'ya eşit konuşalım.
Birinci oyuncu olduğundan emin ol.
Pekala, eğer şimdi bir oyuncu yazdırıp yaparsam.
Dot speak ve bu işlevi çalıştırmayı denedim.
Bakalım.
speak değiştirildiği için string nesnesinin çağrılabilir olmadığını görüyorum.
Speak, ihtiyacımız olan bu gerçek fonksiyon yerine bir dize değerine değiştirildi.
Böylece sadece konuşma özelliğini kontrol edersem yuhalanıyorum.
Hmm.
Yani, soyutlama iyidir, ama bir saniye bekleyin.
Bu çok kötü.
Eğer soyutladığım bir dersim varsa, herkes gelebilir.
Herhangi bir programcı gelip tüm emeklerimi silebilir ve bu şekilde üzerine yazabilir.
Bu kötü değil mi?
Biraz ara verelim ve bir sonraki videoda bu konuyu biraz daha inceleyelim.