Python - Yapıcılar

İçindekiler
İçinde piton sözde "sihirli" yöntemler vardır, yani oluşturulan ve özel bir adı olan ve yalnızca belirli koşullar altında çağrılan yöntemler vardır, çünkü bu yöntemlerin doğrudan çağrılması bir program kapsamında olağan değildir.
inşaatçılar
yöntem __içinde__ bir kurucu olarak hareket etmekten sorumludur, yani bir dizi özniteliği başlatacak ve sınıfın bir nesnesi oluşturulduğu anda tanımladığımız kodu yürütecek, iki alt çizgi ile "__init__" olarak adlandırılır. init kelimesinin başlangıcı ve bitişi o zaman bunun için uygun sözdizimine zaten sahipsiniz. piton bunu bir "sihirli" yöntem olarak alın ve sınıfı başlatırken yürütülmesi gerektiğini bilin.
Yapıcının elde ettiği şey, bir nesneyi başlatmak için aşağıdakileri yapmak yerine şudur:
 >>> f = FooBar () >>> f.init () 

Bu kodu zaten yerleştiren nesne, özniteliklerini yalnızca şunu kullanarak başlattı:
>>> f = FooBar ()

Gördüğünüz gibi, kodlama yaparken önemli bir tasarruf ve nesneyi başlatmayı unutmamız durumunda bir yardım.
Yapıcıyı oluşturmak
Yapıcıyı şurada oluşturun: piton Oldukça basit, sadece metodu tanımlamamız ve nesne oluşturulurken yapılması gerekenleri eklememiz gerekiyor, bir örnek görelim:

Resimde tanımlanan yöntemi görebilirsiniz ve yürütmesi gereken şeyde özniteliği tanımladığını görüyoruz. bazıvar ve eşittir 42. Bu sınıftan bir nesnenin nasıl çalışacağına dair bir örnek görelim:

Resimde f tipinin nesnesini tanımlarken görüyoruz. FooBar Başlatılır ve özniteliğine erişirken, somevar, yapıcıda tanımlanan değer olan 42'yi yazdırır.
Şimdi özniteliklerin dinamik olarak başlatılmasını istiyorsak ne olur, yöntemi aşağıdaki gibi yeniden yazalım:
 sınıf FooBar: def __init __ (kendi, değer = 42): self.somevar = değer 

İsteğe bağlı parametreyi bir değer iletebiliriz, geçemezsek varsayılan değer olarak 42 alır.
Programın yürütülmesi aşağıdaki gibi olacaktır:
 >>> f = FooBar ('Bu bir yapıcı argümanıdır') >>> f.somevar 'Bu bir yapıcı argümanıdır' 

Bu şekilde, program içerisinde ihtiyaçlarımıza göre nesnelerimize farklı nitelikler atayabilmemiz için yapıcımızı dinamik hale getirdik.
Yapıcının üzerine yazma
Süper sınıflardan miras almamız gereken zamanlar vardır, bunun için bazen yapıcının üzerine yazmamız gerekir, bunun neyle ilgili olduğunu anlamak için aşağıdaki örneğe bakalım:

Burada, kurucunun aç niteliği tanımladığı Bird adında bir sınıf oluşturduk, aşağıdakileri çalıştırıyoruz ve nasıl çalıştığını görüyoruz:
 >>> b = Kuş () >>> b.eat () Aaaah… >>> b.eat () Hayır, teşekkürler! 

Şimdi bu sınıftan miras alırsak ne olur, aşağıdaki kodu görelim:
 sınıf SongBird (Kuş): def __init __ (self): self.sound = 'Squawk!' def şarkı (kendi kendine): self.sound'u yazdır 

Küçük bir program çalıştırıyoruz:
 >>> sb = SongBird () >>> sb.sing () Squawk! 

Şimdi eat() yöntemini çağırırsak bir hata görürüz:
 >>> sb.eat () Geri izleme (en son arama): Dosya "", satır 1, in? "birds.py" dosyası, 6. satır, eat if self.hungry'de: AttributeError: SongBird örneğinin 'hungry' özelliği yok 

İstisna bize, aç özniteliğin mevcut olmadığını söyler, bu nedenle, yapıcımızdaki süper sınıfın yapıcısını çağırmalıyız:
 class SongBird (Kuş): def __init __ (self): Bird .__ init __ (self) self.sound = 'Squawk!' def şarkı (kendi kendine): self.sound'u yazdır 

Şimdi kodu yürütürken her şey sorunsuz çalışacak:
 >>> sb = SongBird () >>> sb.sing () Squawk! >>> sb.eat () Aaaah… >>> sb.eat () Hayır, teşekkürler! 

Bununla öğreticiyi bitiriyoruz, __init__ yöntemini temel bir şekilde nasıl kullanacağımızı ve daha yüksek bir sınıftan miras almamız gerektiğinde nasıl yapacağımızı zaten biliyoruz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave