Sobes.tech
Junior — Middle

Duck typing kavramını açıklayın ve bunun programlamada statik tiplemeden farkını belirtin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Duck typing, programlamada nesnenin türünün, sınıfına veya arayüzüne göre değil, belirli metodlar ve özelliklerin varlığına göre belirlendiği bir kavramdır. Bir nesne "ördek" gibi davranıyorsa (gerekli metodlara sahipse), uygun kabul edilir.

Statik tipten farkı:

  • Statik tipte, tipler derleme zamanında kontrol edilir ve nesnelerin açıkça tanımlanmış tiplere uyması gerekir.
  • Duck typing'te, kontrol çalışma zamanında yapılır ve sadece arayüz uyumu (metodlar/özellikler) önemlidir, kalıtım veya beyan edilen tipler değil.

Python'da örnek (duck typing):

class Duck:
    def quack(self):
        print("Vak vak")

class Person:
    def quack(self):
        print("Ben de ördek gibi vaklarım")

def make_it_quack(thing):
    thing.quack()

make_it_quack(Duck())    # Vak vak
make_it_quack(Person())  # Ben de ördek gibi vaklarım

Burada fonksiyon nesnenin tipinden çok, quack metodunun varlığından haberdar değildir.