Sınıflar ve Nesneler
Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 3 / 64.
Sınıflar ve nesneler farklı amaçlara hizmet eder. Bir sınıf bir taslaktır, nesne ise o taslaktan inşa ettiğiniz şeydir.
İşte bir sınıf örneği:
class Dog:
# tüm köpekler tarafından paylaşılır
species = "Canis familiaris"Artık Dog sınıf adını kullanarak Dog.species üzerinden sınıf özniteliğine doğrudan erişebiliriz:
print(f"Class species: {Dog.species}")
# Sınıf türü: Canis familiarisBu, herhangi bir belirli nesneden değil, sınıfın kendisinden veriye erişir.
Şimdi nesnelerde nasıl çalıştığını inceleyelim. Dog sınıfından nesneler oluşturun:
dog1 = Dog()
dog2 = Dog()Nesneler, sınıfların sahip olamadığı bireysel özniteliklere sahip olabilir:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Sınıfların ve nesnelerin neler yapabileceğini karşılaştırın:
print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")Çıktı:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisTemel Fark: Dog sınıfı tüm köpeklerin ortak özelliklerini tanımlarken, dog1 ve dog2 nesneleri benzersiz özelliklere sahip belirli, bireysel köpekleri temsil eder.
Görev
KolayBir Student sınıfı ve iki öğrenci nesnesi oluşturmak için kodu tamamlayın. Her öğrenciye farklı isimler ve notlar ekleyin.
student.py:Studentsınıfınızı tanımlayacağınız yer burasıdır.driver.py: Student sınıfınızı içe aktaracak ve kullanacak olan ana yürütme dosyası:Bir
Studentsınıfı ve iki öğrenci nesnesi oluşturmak için kodu tamamlayın. Her öğrenciye farklı isimler ve notlar ekleyin.student1 adı
"Alice"ve notu"A".student2 adı
"Bob"ve notu"B".
Kopya kağıdı
Bir sınıf (class), paylaşılan nitelikleri ve davranışları tanımlayan bir taslaktır. Bir nesne (object), o sınıftan oluşturulan ve bireysel özelliklere sahip olan bir örnektir.
Bir sınıf tanımlayın:
class Dog:
# Sınıf niteliği - tüm örnekler tarafından paylaşılır
species = "Canis familiaris"Sınıf niteliklerine doğrudan erişin:
print(Dog.species) # Canis familiarisBir sınıftan nesneler oluşturun:
dog1 = Dog()
dog2 = Dog()Nesnelere bireysel nitelikler ekleyin:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Nesneler hem kendi bireysel niteliklerine hem de sınıf niteliklerine erişebilirler:
print(f"{dog1.name} is a {dog1.breed}") # Bireysel nitelikler
print(f"Species: {Dog.species}") # Sınıf niteliğiKendin dene
# Student sınıfını içe aktar
from student import Student
# YAPILACAK: İki öğrenci nesnesi oluşturun
# YAPILACAK: student1'e öznitelikler ekleyin
# YAPILACAK: student2'ye öznitelikler ekleyin
# Öğrenci bilgilerini yazdır
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")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
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerself ParametresiMetotlarÖzniteliklerYapıcı Metot (__init__)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımsuper() FonksiyonuMetot Geçersiz KılmaÇoklu KalıtımMetot Çözümleme SırasıÖzet - Çalışan Hiyerarşisi7Özel Metotlar
Sihirli Metotlara GirişOperatör Aşırı YüklemeKapsayıcı Sihirli MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım kalıplarına girişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı13Final Meydan Okumaları
E-öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi5Çok Biçimlilik (Polymorphism)
Metot Geçersiz Kılmaya Yeniden BakışDuck TypingSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımMixinsStatik ve Sınıf MetotlarıSınıf DekoratörleriBağlam Yöneticileri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit Kalıbı