ABC
- Python kursu
- Orta seviye
- Ders 47/116
- 5 dk
abc.ABC ile soyut sınıf tanımlamayı öğrenirsin.
Soyut sınıf (ABC)
Bir soyut sınıf (abstract class), doğrudan örneklemeyen ve alt sınıflar için bir şablon görevi gören sınıftır. Python'da abc modülünden ABC sınıfını miras alarak tanımlarsın.
Örnek: from abc import ABC\nclass Animal(ABC):\n pass. Burada Animal artık soyut bir sınıftır. Animal() yazıp örnek oluşturmaya çalışırsan TypeError alırsın; ama bir alt sınıf oluşturup onu örnekleyebilirsin. Soyut sınıflar, ortak arayüzü zorunlu kılmak için kullanılır.
ABC miras almak
Soyut sınıf tanımlamanın en kısa yolu ABC'yi miras almaktır. Sınıf gövdesine hiçbir soyut metot koymasan bile ABC mirası, örnekleme girişimini engeller. Bu, “bu sınıf tek başına kullanılmamalı” mesajını verir.
Soyut sınıf, alt sınıflara ortak bir davranış çerçevesi sunar. Alt sınıf, soyut sınıfı miras alır ve eksik metotları doldurur. Böylece farklı alt sınıflar aynı arayüze uyar; çağıran taraf hangi alt sınıf olduğunu bilmek zorunda kalmaz.
Uygulama Soyut sınıfı tanımla
from abc import ABC ile başla. Animal(ABC) adında soyut bir sınıf tanımla; gövdesine pass yaz. Sonra print(issubclass(Animal, ABC)) ile soyut taban sınıf ilişkisini yazdır.
Başlangıç kodu
# abc modülünden ABC al ve Animal soyut sınıfını tanımlaÖrnek çözüm
# abc modülünden ABC al ve Animal soyut sınıfını tanımla
from abc import ABC
class Animal(ABC):
pass
print(issubclass(Animal, ABC))Beklenen çıktı
True
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Animal(ABC) tanımından sonra ne olur?
- Animal() yeni bir örnek döndürür
- Animal() çağrısı TypeError fırlatır Doğru cevap
- Animal otomatik olarak alt sınıf olur
- Animal yok sayılır
Açıklama: Soyut sınıf doğrudan örneklenemez; TypeError fırlar.
2 import satırını tamamla
from ____ import ABC
class Animal(ABC):
pass
from abc import ABC
class Animal(ABC):
pass
Açıklama: abc modülü ABC sınıfını içerir.
3 ABC parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
abc |
Modül |
ABC |
Taban sınıf |
class Animal(ABC) |
Soyut tanım |
TypeError |
Örnekleme hatası |