C Gömülü Programlama konularımız yayında...
Python nesneye yönelik bir programlama dilidir. Nesneye yönelik programlama dilinin esasını nesne oluşturur. Bir nesne oluşturmadan önce, nesnenin özelliklerini (değişkenler) ve metodlarını (fonksiyonlar) belirleyecek olan bir sınıf bildirimi yapılarak yeni bir veri türü oluşturulur. Daha sonra, bu sınıf türünden nesneler oluşturularak, sadece bu nesne yoluyla sınıf kopyası içinde yer alan değişken ve fonksiyonlara erişim sağlanır.
Python'da bir sınıf bildirimi class anahtar kelimesi ile aşağıda gösterildiği şekilde yapılır:
class sınıf-adı: # Sınıf dışından erişim sağlanabilen değişken bildirimleri ortak-değişken1 = ön-tanımlı-değer1 ortak-değişken2 = ön-tanımlı-değer2 . . # Sınıf dışından erişilemeyen değişken bildirimleri (çift alt çizgi ile başlar.) __özel-değişken1 __özel-değişken2 . . # Başlangıç değer atama fonksiyonu def __init__(sınıf-kopya-değişkeni, param1, param2, ...): sınıf-kopya-değişkeni.param1 = ... sınıf-kopya-değişkeni.param2 = ... . . # Normal sınıf fonksiyon bildirimleri def fonksiyon-adı1(param1, param2, ...) def fonksiyon-adı2(param1, param2, ...) . .
Şimdi, sınıf bildiriminin yapılmasını bir örnek üzerinde incelemeye çalışalım:
class sinif_kitap:
# Sınıf dışından erişim sağlanabilen değişken bildirimleri
grup = "Kitap"
# Sınıf dışından erişilemeyen değişken bildirimleri (çift alt çizgi ile başlar.)
__yazar = 1
# Başlangıç değer atama fonksiyonu
def __init__(self, kategori, adi):
self.kategori = kategori
self.adi = adi
# Normal sınıf fonksiyon bildirimleri
def nesne_yazdir(self):
print(self.grup + ' ' + self.kategori + ' ' + self.adi)
print(sinif_kitap)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
<class '__main__.sinif_kitap'>
Program, grup adlı bir adet ortak değişken, __yazar adlı bir adet özel değişken, iki parametreli bir __init__() fonksiyonu ve nesne değişken değerlerini ekrana yazan nesne_yazdir() adlı bir fonksiyon içeren sinif_kitap adlı bir sınıf bildirimi yapar. Sınıfı ekrana yazdırır.
Python'da bir sınıf bildirimi yapıldıktan sonra, aşağıdaki gösterilen genel yapıyı kullanarak bu sınıftan nesneler oluşturabiliriz. Nesneyi oluşturduktan sonra, nesne adını nokta (.) karakteri ile birlikte kullanarak sınıf içinde yer alan değişken ve fonksiyonlara erişim sağlayabiliriz.
nesne-adı = sınıf-adı(param1, param2, ...) # Nesne oluşturma (Parametre tanımlanması isteğe bağlıdır.)
# Nesne elemanlarına erişim
print(nesne-adı.değişken-adı) # Nesne değişkenlerine erişim
nesne-adı.fonksiyon-adı() # Nesne fonksiyonlarına erişim
Bir nesne oluşturulduğunda, nesnenin oluşturulduğu sınıfın bir kopyası oluşturulmuş olur. Böylece, nesne yoluyla sınıf kopyası üzerinde yapılan değişiklikler esas sınıf içeriğini etkilemez.
Şimdi, sınıf bildiriminin yapılmasını bir örnek üzerinde incelemeye çalışalım:
class sinif_kitap:
# Sınıf dışından erişim sağlanabilen değişken bildirimleri
grup = 'Kitap'
# Sınıf dışından erişilemeyen değişken bildirimleri (çift alt çizgi ile başlar.)
__yazar = ''
# Başlangıç değer atama fonksiyonu
def __init__(self, kategori, adi, yazar):
self.kategori = kategori
self.adi = adi
self.__yazar = yazar
# Normal sınıf fonksiyon bildirimleri
def nesne_yazdir(self):
print(self.grup + ', ' + self.kategori + ', ' + self.adi + ', ' + self.__yazar)
nes1 = sinif_kitap('Roman', 'Çalıkuşu', 'Reşat Nuri Güntekin')
nes1.nesne_yazdir()
nes2 = sinif_kitap('Hikaye', 'Perili köşk', 'Ömer Seyfettin')
nes2.nesne_yazdir()
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
Kitap, Roman, Çalıkuşu, Reşat Nuri Güntekin Kitap, Hikaye, Perili köşk, Ömer Seyfettin
Program, grup adlı bir adet ortak değişken, __yazar adlı bir adet özel değişken, iki parametreli bir __init__() fonksiyonu ve nesne değişken değerlerini ekrana yazan nesne_yazdir() adlı bir fonksiyon içeren sinif_kitap adlı bir sınıf bildirimi yapar. Bu sınıftan iki adet nesne oluşturur ve nesne fonksiyonu yoluyla nesne değişken değerlerini ekrana yazdırır.