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.