Tekrar hoş geldiniz.
Bir önceki videoda, ana sınıfın bir alt sınıfından bir yöntemin nasıl çağrılacağını göstermiştim.
Yani bizim durumumuzda, kullanıcı nokta saldırısı yaptık.
Saldırı yöntemini ve kullanıcıyı çalıştırmak için.
Artık saldırı yöntemini kaldırdım çünkü farklı bir şey denemek istiyorum.
Burada bir init fonksiyonu oluşturmak istiyorum ve bu init fonksiyonu self alacaktır.
Ve sonra diyelim ki kullanıcı, diyelim ki e-posta alacak.
Çünkü oyunumuzun tüm kullanıcılarının e-postaları olması gerekiyor.
Ve burada sadece self nokta e-postasının e-postaya eşit olacağını söyleyeceğiz.
Güzel ve basit.
Şimdi burada.
Bu kodu çalıştırırsam ve şimdilik kullanıcı nokta saldırısını kaldıralım.
Yani aynı sihirbazımız var, sadece bunu ekledik ya da pardon bu init.
Ve sihirbazımız kazandı.
Burada sihirbazı çalıştırırsam ve diyelim ki Sihirbaz bir nokta e-postasını çalıştırmak istiyoruz.
Çalıştır'a tıklarsam.
Hmm.
Anladım.
Sihirbaz nesnesinin öznitelikleri yoktur.
E-posta.
Hmm.
Ancak sihirbazı oluşturduğumuzda kullanıcının çağrılacağını sanıyordum, değil mi?
Wizard One'ı örneklediğimizde.
Mesele şu ki, her ne kadar miras alsak da, diyelim ki nokta yaparsam, miras alabiliriz.
Giriş yapın.
Kullanıcıdan.
Ve çalıştır'a tıklarsam, bunu devraldığımızı görürüz.
Sihirbazın zaten bir init işlevi zaten bir kurucusu var, değil mi?
Peki bunu nasıl çözebiliriz?
Bunun bir yolu buraya e-posta eklemek, değil mi?
Ve sadece e-postayı al.
Tam buraya atıfta bulunun.
Ama bunda ne sorun var?
Verimsiz, değil mi?
Çünkü bir Okçu sınıfı oluşturursam, aynı şeyi yapmam gerekecek.
Ve tüm bu niteliklerin tüm alt sınıflarımızda aynı olacağını bildiğimizde, bunu burada yapmak
isteriz.
Peki bunu yapmanın daha etkili bir yolu nedir?
Kullanıcının init metodunu buradan çağırmak istiyoruz.
Doğru.
Çünkü yeni bir sihirbazı her başlattığımızda, bu init fonksiyonu çağrılacaktır.
Bunu yapmanın yolu kullanıcı noktası demek.
İçinde alt çizgi var.
Ve sonra ona kendini ver.
Ve sonra e-posta.
Ve sonra e-posta bizim ilettiğimiz bir şeydir.
Böylece buraya inersem şöyle diyebilirim.
Merlin at gmail. com e-posta olacak.
Yani şimdi, diyelim ki.
Sihirbaz Bir için nokta e-postası ve Çalıştır'a tıklıyorum.
Merlin'in e-postasını bir kez daha aldım.
Tek yaptığımız init yöntemini çağırmaktı.
Sihirbazın içindeki kullanıcının.
Yeni bir sihirbaz oluşturduğumuzda, bu işlevi çalıştırdık ve bu işlevin içinde user dot init'i çalıştırdık
ve burada bir argüman olarak ilettiğimiz e-postayı geçirdik.
Şimdi, bu bunu yapmanın bir yolu.
Bir de başka bir yol var ve buna süper deniyor.
Ve bu anahtar bir kelime.
Gördüğünüz gibi, burada vurgulanıyor.
Ve tek yaptığımız süper koşmak.
Super ise üst sınıfa veya wizard'ın üstündeki sınıfa, yani user'a atıfta bulunur.
Ve bu aslında Python 2'den itibaren yeni bir eklentidir. 2.
Super ile, aslında artık self'e ihtiyacımız yok, bu yüzden kodumuz daha da temiz görünüyor ve tek ilettiğimiz bu ve
çalıştır'a tıklarsak.
Yine de doğru cevabı alıyoruz.
Süper.
Kullanıcıya bu şekilde atıfta bulunmamızı sağlar ve kendini geçme konusunda endişelenmemize gerek kalmaz.