Menu
Coddy logo textTech

Yapıcı Metot (__init__)

Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 7 / 64.

__init__ metodu, yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir metottur. Nesnenin özniteliklerini başlatır.

İşte bir yapıcı (constructor) içeren bir sınıf örneği:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

__init__ metodu parametreleri alır ve self kullanarak bunları örnek niteliklerine atar.

Yapıcıyı kullanarak nesneler oluşturun:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

Dog("Rex", "German Shepherd") çağırdığınızda, Python otomatik olarak __init__ metodunu çağırır ve argümanları iletir.

Yapıcı (constructor) tarafından ayarlanan özniteliklere erişin:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

Çıktı:

Rex
German Shepherd
Buddy
Golden Retriever

Ayrıca varsayılan değerlere sahip bir yapıcı (constructor) kullanabilirsiniz:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# Kedileri oluştur
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # yaş varsayılan olarak 1 olur

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

Çıktı:

Fluffy is 3 years old
Whiskers is 1 years old

Önemli Nokta: __init__ metodu, her nesnenin oluşturulduğunda başlangıç verileriyle düzgün bir şekilde kurulmasını sağlar. Sizi, nesne oluşturulduktan sonra öznitelikleri manuel olarak ayarlama zahmetinden kurtarır.

challenge icon

Görev

Kolay

Bir kitap yönetim sistemi uygulamak için size Python dosyaları (book.py ve driver.py) verilmiştir. Bu görevde, bir dosyada tanımlanan ve başka bir dosyada içe aktarılıp kullanılacak olan bir Book sınıfı tanımlayacaksınız.

Göreviniz şunları yapmaktır:

  • book.py dosyasındaki Book sınıfını; title, author ve pages özniteliklerini başlatan bir __init__ metodu ile tamamlayın
  • driver.py dosyası, "Harry Potter" by "J.K. Rowling" with 400 pages için bir kitap nesnesi oluşturmak üzere Book sınıfınızı içe aktaracak ve kullanacaktır

book.py dosyasındaki ayrıntılı TODO yorumlarını takip edin.

Kopya kağıdı

__init__ metodu, özniteliklerini başlatmak için yeni bir nesne oluşturulurken otomatik olarak çalışan bir yapıcıdır (constructor):

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

Sınıfı argümanlarla çağırarak nesneler oluşturun:

rex = Dog("Rex", "German Shepherd")
print(rex.name)  # Rex
print(rex.breed)  # German Shepherd

Yapıcılar varsayılan parametre değerlerine sahip olabilir:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age varsayılan olarak 1 değerini alır

Kendin dene

# YAPILACAK: Book sınıfını book.py dosyasından içe aktarın
# Şu formatı kullanın: from book import Book

# YAPILACAK: Aşağıdaki değerlere sahip 'my_book' adında bir kitap nesnesi oluşturun:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Örnek: my_book = Book("Title", "Author", pages)

# Kitap ayrıntılarını yazdır
# YAPILACAK: Bu satır çalışmadan önce my_book'un düzgün tanımlandığından emin olun
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Object Oriented Programming bölümündeki tüm dersler