Python - Nedır bu __init__():?

Merhaba, python programlama yaparken klasik tarzda şu şekilde;

def login_screen():

fonksiyon oluşturuyorum. Fakat mantığını ve kullanım alanlarını anlamak istediğim şu init(): şeklinin tam olarak ne işe yaradığını kavramam lazım. Hangi durumlarda gereklidir, faydası nelerdir, hangi şartları yerine getirir vb. gibi genel bir bilgilendirme yapabilecek var mı aramızda?

Şimdiden teşekkürler…

4 Beğeni

Merhaba __init__ fonksiyonu bir yapıcı method diyebiliriz class ilk örneklendiğinde yapılacak olan işleri __init__ blokları içerisinde belirleyebiliriz kısaca ilklendirme methodu.

2 Beğeni

init(): kodunu class için kullanıyoruz sadece öyle mi anlamalıyım bunu ?

2 Beğeni

Bir deneyin isterseniz.

class Sınıf():
    def __init__(self):
        print("Hello init çalıştı.")
2 Beğeni

Evet sınıf içerisinde kullanılır kullandıkça daha da anlarsınız zaten ne işe yaradığını örnek verdim aşağıda.

1 Beğeni

Evet, ozel metodlarin tamami (ismi ustunde) bir objenin muhtelif durumlardaki davranisini belirliyorlar ve sadece kullanim kolayligi icin varlar.

Bu arada kod parcalarini ` arasina alman lazim.

4 Beğeni

peki bu özelliği yani __init__(): özelliğini kullanmasam bana çok zararı olur mu?

1 Beğeni

Ne ise yaradigini bilmeden kullanmandan daha fazla zarari olmaz, hayir.

5 Beğeni

Sınıflar konusunu öğrenirseniz, neden kullanmanız gerektiğini de anlarsınız. __init__ metodunu kullanarak bir sınıftan örnekler oluşturursunuz.

2 Beğeni

Olusturdugun her ornek uzerinde ayni isi yapmani kolaylastiriyor sadece; ornek olusturmak icin bir gereksinim degil.

Edit: Ama herhalde class’lari anlatan her derste ilk gosterilen sey.

2 Beğeni

Yanlış ifade ettim, sağolsun @aib düzeltti.

1 Beğeni

class dersinde

__init__():

yapısını gördüm. şuan da kendi hesap kitabımı tutacağım bir program yazarken __init__(): yapısı aklıma geldi acaba kullansam ne faydası olur diye. Söylediklerinize baktıktan sonra çok detaylı bir şey olmadığı için gerek duymadım. Ama cevaplar için teşekkürler üstüne araştırmalar yapıp geliştirip kullanacağım inşallah sağolun

1 Beğeni

Birçok kez class kullanmak zorunda hissetmeyebilirsiniz. Ama öyle durumlar var ki, ancak bir sınıf kullanırsanız işlemi gerçekleştirebilirsiniz. Örnek olsun diye paylaşıyorum.

Kod 1:

import sys

a = []
save = sys.stdout
sys.stdout = a
print("hello")
sys.stdout = save
print(a)

Bu kodları çalıştırırsanız şöyle bir hata alırsınız:

AttributeError: 'list' object has no attribute 'flush'

Ama aşağıdaki kod listeye "hello" yazısını ekleyecektir.

Kod 2:

import sys


class StdIOYonlendiricisi:
    def __init__(self, obj):
        self.obj = obj

    def write(self, string):
        if isinstance(self.obj, list):
            self.obj.append(string)

    def flush(self):
        pass


a = []
save = sys.stdout
sys.stdout = StdIOYonlendiricisi(obj=a)
print("hello")
sys.stdout = save
print(a)

Bu kodları çalıştırdığınız zaman alacağınız çıktı şöyle olacaktır:

['hello', '\n']

Burada yapılan şey şu: Bir sınıfın metotlarını taklit eden başka bir sınıf oluşturduk ve bu sayede listeye eleman eklenmesini sağladık.

1 Beğeni