Kurs
Nesne yönelimli yaklaşım, kodunuz birçok nesnenin karmaşık etkileşimlerini içerdiğinde en kullanışlıdır. Gerçek üretim kodunda, sınıflar onlarca öznitelik ve karmaşık mantığa sahip yöntemler içerebilir, ancak temel yapı en basit sınıfta olduğu gibidir.
Sınıflar, belirli bir türdeki her nesnenin sahip olabileceği olası davranışları ve durumları ana hatlarıyla belirleyen bir taslak gibidir. Örneğin, "her müşterinin bir telefon numarası ve e-postası olacak, ayrıca sipariş verebilecek ve iptal edebilecek" derseniz, bir sınıf tanımlamış olursunuz! Bu sayede müşteriler hakkında birbiriyle tutarlı biçimde konuşabilirsiniz. Ardından belirli bir Customer nesnesi, bu sınıfın belirli bir durum değeriyle gerçekleştirilmiş halidir.

Python Sınıflarını Bulma
Python'da her şey bir nesnedir. Sayılar, dizeler, DataFrame'ler, hatta fonksiyonlar birer nesnedir. Özellikle, Python'da uğraştığınız her şeyin kaputun altında ona bağlı bir sınıfı, bir taslağı vardır. Bu birleşik arayüzlerin varlığı sayesinde, örneğin herhangi bir DataFrame'i aynı şekilde kullanabilirsiniz.
Herhangi bir Python nesnesinin sınıfını öğrenmek için type() çağırabilirsiniz. Örneğin, bir numpy dizisinin sınıfı aslında ndarray (n-boyutlu dizi) olarak adlandırılır.
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Sınıflar, durum ve davranış hakkındaki bilgileri bir araya getirir. Python'da durum bilgisi özniteliklerde, davranış bilgisi yöntemlerde tutulur.
Öznitelikler ve Yöntemler
Bir numpy dizisini ele alalım: zaten bazı yöntemlerini ve özniteliklerini kullanıyorsunuz!
Örneğin, her numpy dizisinin, dizinin adını yazıp ardından bir nokta ve shape yazarak erişebileceğiniz "shape" adlı bir özniteliği vardır.
Durum <--> Öznitelikler
import numpy as np
a = np.array([1,2,3,4])
# shape özniteliği
a.shape
(4,)
Ayrıca, nokta ile erişilebilen max ve reshape gibi yöntemleri de vardır.
Davranış <--> Yöntemler
import numpy as np
a = np.array([1,2,3,4])
# reshape yöntemi
a.reshape(2,2)
array([[1, 2],
[3, 4]])
İlk Sınıfınızı Oluşturma
Bu örnekte, boş bir Employee sınıfı oluşturacaksınız. Ardından Employee() çağırarak Employee sınıfından bir emp nesnesi oluşturacaksınız.
Konsolda emp nesnesinin .name özniteliğini yazdırmayı deneyin. Ne olur?
# Boş bir Employee sınıfı oluşturun
class Employee:
pass
# Employee sınıfından bir emp nesnesi oluşturun
emp = Employee()
Python'da nesne yönelimli programlama hakkında daha fazla bilgi için, kursumuzdaki şu videoya bakın: Python'da Nesne Yönelimli Programlama.
Bu içerik, Aliaksandra Yarosh'un DataCamp’teki Python'da Nesne Yönelimli Programlama kursundan alınmıştır.
DataCamp'in Python Nesne Yönelimli Programlama (OOP) Eğitimi'ne göz atın.
