Nesne yönelimli programlama, run gibi kendi yöntemleri olan nesneler oluşturmamızı sağlar.
Ve nitelikler.
Özellikler.
Bir dile daha fazla işlevsellik katmak ve gerçek dünyayı taklit etmek için harika bir yoldur.
Örneğin, bir oyun şirketi için çalışma fikrini kullanıyoruz.
Python bize sadece birkaç veri türü vermesine rağmen, bir oyuncu karakteri yaratabildim ve şimdi patronum
mutlu çünkü bu oyuncu karakteri oyunun her yerinde kullanılabilir ve diğer kodlayıcıların yapması gereken
tek şey bu satırı karakterin özel adı ve yaşı ile çalıştırmaktır.
Böylece OP, tekrarlanabilir, iyi organize edilmiş ve aynı zamanda bellek açısından verimli kod yazmamızı sağlar.
Değil mi?
Çünkü bunu sadece bir kez yazıyoruz.
Eğer harika bir geliştirici olmak istiyorsanız, OP bilmeniz ve anlamanız gereken bir şeydir
çünkü kodunuzu bu şekilde düzenlemek istersiniz.
Daha az prosedürel düşünmek ve daha çok işlevsellik açısından düşünmek.
Gerçek dünyadan bir şeyi taklit edebilen bu sınıfı oluşturmak için nitelikler gibi verileri yöntemlerle birlikte gruplandırmak.
Şimdi size burada faydalı bir araç göstermek istiyorum.
Oyuncu Dot'u yaptığımda bunu gördük.
Editörüm bana mevcut özelliklerimin yanı sıra mor kutularda mevcut metotlarımı
gösteriyor.
Ve ilk bakışta bir adım ve koşum olduğunu görüyorsunuz, ama sonra varsayılan olarak sahip olduğum tüm bu
diğerlerine sahibim.
Şimdi bunların hepsi Dunder ya da sihirli yöntemler, ki bunlara birazdan değineceğiz.
Ancak buradaki kilit nokta, daha önce görmemiş olabileceğiniz yeni bir işlev olan help gibi
bir şey yaparsam ve bunu yorumlayalım.
Çalıştır'a tıklarsam.
Aslında nesnenin tüm planını alıyorum.
Liste gibi bir şey yaparsam.
Ve Çalıştır'a tıklıyorum.
Yine, sahip olduğu planı gösteriyor.
Ve bu, bazı Python veri türlerinin hangi sınıf planına sahip olduğunu görmek için harika bir yoldur.
Şimdi, bu daha sonra tekrar ele alacağımız bir konu.
Ama ben bu oyuncu karakterine geri dönmek istiyorum.
Şimdi, burada, öznitelikler oluşturabildiğimizi gördük.
Öznitelikler ise dinamik olan veri parçalarıdır.
Yani, bir nesneyi örneklediğimizde, ad ve yaş gibi o nesneye özgü olacaklardır.
Ve dinamik olduğundan emin olmak için bu self anahtar kelimesini kullanmak zorundaydık.
Bununla birlikte, sınıf nesnesi niteliği adı verilen başka bir şey daha vardır ve aşağıdaki gibi görünebilir.
Diyelim ki bir oyuncu karakterimiz var ve diyelim ki ücretli bir üye olmak zorunda.
Bu oyunu oynayabilmek için daha önce oynamış olmanız ya da üyelik almış olmanız gerekmektedir.
O zaman eşit sayıda üye alalım.
Doğru.
Özellik.
Şimdi, bundan farklı olarak, yöntemlerimizle aynı satırda olduğunu görüyorsunuz.
Ve buna sınıf nesnesi denir.
Özellik.
Bir sınıf nesne niteliğinde, bu normal sınıf niteliklerinin aksine, farklıdır çünkü
dinamik değil, statiktir.
Yani eğer tıklarsam.
Buraya koşun ve bir şeyler yazdırdığımızdan emin olmak istiyoruz.
O zaman oyuncuya yazdıralım.
Ve Çalıştır'a tıklıyorum.
Oyuncuyu anladım, bu harika.
Ama eğer nokta üyelik yaparsam.
Ve Çalıştır'a tıklıyorum.
Şuna bak.
Eğer burada birinci oyuncuyu oynatırsam bu sayı ikiye eşit olur.
Aynı şekilde.
Ve Çalıştır'a tıklıyorum.
Yine doğruyu buldum.
Yani tüm oyuncuların üyelikleri doğru olarak ayarlanmıştır.
Ancak bu dinamik değildir.
Bu bir sınıf nesnesi niteliğidir, yani bu sınıfın gerçek bir niteliğidir.
Ve bu, herhangi bir değişiklik olmadığında kullandığımız bir şeydir.
Bu, tüm nesneler için doğru olacak ve var olacaktır, bu yüzden gerçekten değiştiremezsiniz.
Sadece örneklediğimiz tüm nesnelerin buna erişimi olacaktır.
Yani bu durum örnekler arasında değişmez.
Ve bunu burada veya bu sınıf planının herhangi bir yerinde de kullanabiliriz.
Aslına bakarsanız, örneğin, şunu kontrol etmek istediğimizi varsayalım.
Üyelik var, bu yüzden üyeliğin doğru olup olmadığını kontrol ediyoruz.
Yani, her zaman öyledir.
Yani bu biraz gereksiz ama burada.
Sadece üyeliğin doğru olup olmadığını söyleyebilirim.
Sonra isim ve yaş atayacağım.
Ancak üyeliğe erişebilmemiz için self nokta üyeliği yapmam gerekecek çünkü unutmayın, self bu oyuncu karakterini
ifade eder, böylece bunu çalıştırırsam.
Her şey hala çalışıyor.
Ve eğer bir nokta ismi oynarsam.
Bu hala çalışıyor.
Ya da bunu gerçek oyuncu karakteriyle ifade edebilirim.
Yani oyuncu karakter üyeliği.
Yani eğer buraya tıklarsam.
Bu da işe yarar çünkü bu bir sınıf nesnesi niteliğidir.
Eğer ben.
Nereye?
Belki de koşarken.
Bunu değiştirelim.
Bağırmak ve.
Ve bağır.
Kaçmak isteyecektir.
Bu satırı kaldıralım.
Basılacak.
Benim adım yazan bir F dizesi.
Ve ona bir isim ver.
Bunun işe yarayacağını düşünüyor musunuz?
Bir deneyelim.
Bağır diyelim.
Ve bu yöntemi çalıştırdığımızdan emin olun ve ardından tekrar bağır'a tıklayın.
Çalıştır'a tıklarsam.
Satır 11'de hava adı tanımlanmamış uyarısı alıyorum.
Burada 11. satıra gidersem, name tanımlı değil.
Nedenmiş o?
Çünkü biz kendimizi kullanmadık.
O zaman öz nokta ismi yapalım.
Ve eğer koş'a tıklarsam.
Al bakalım.
Benim adım Tom.
Benim adım Cindy.
Tamam.
Harika.
Ve self'i kullanabiliyorum çünkü onu buraya ilk parametre olarak geçiriyorum ve tüm metotlar ilk parametre olarak self'i
alıyor, böylece onları kullanabiliyoruz.
Ancak çalıştır'a tıklarsam sadece oyuncu karakteri nokta adını yapabilir miyim?
Bir hava oyunu alıyorum, bir karakterin öznitelik adı yok.
Nedenmiş o?
Çünkü name bir sınıf nesnesi niteliği değildir.
Bu aslında oyuncu karakterinin bir özelliği ya da niteliği değildir.
Hayır, kurucu işlevimizde, init işlevimizde tanımlanmıştır.
Yani bu biraz zor bir durum ve alışmanız gereken bir şey.
Bir sınıf nesnesi özniteliği, bir özniteliğe karşı farklı örnekler arasında değişmeyen bir şeydir
veya bir sınıf özniteliği, dinamik ve her sınıf nesnesine özgü bir şeydir.
Onlara erişme şeklimiz, aslında üyeliğe bu şekilde erişebildiğimiz yerlerde farklıdır.
Ancak sınıfımızın içinde herhangi bir yerde bir isme veya yaşa erişebilmemiz için, öz ismi kullanmamız gerekir.
Bu nedenle, bir sınıfta bir yöntem oluşturduğumuzda, burada yeni bir tane oluştursam ve diyelim
ki bu yeni yöntem çalıştırılacak olsa bile.
Bir kez daha self'i parametre olarak kullanmam ve ardından eklemek istediğim başka bir şey yapmam gerekiyor.
Ve burada.
İkinci parametre olarak, böylece tıkladığımda, diyelim ki çalıştır.
Geçiyorum.
Merhaba.
Bunun gibi bir argüman.
Bunun çok fazla olduğunu biliyorum, ama umarım sınıf kurallarına uymaya başlıyorsunuzdur.
Bu kuralları bir kez hatırladığınızda, her şey daha da kolaylaşır.
Ancak bunu bir sonraki videoda biraz daha pratik yapacağız.