
Python İle Dosya Okuma ve Yazma İşlemleri (TXT, CSV, JSON)
31 Temmuz 2026
Python Modülleri ve PIP Paket Yöneticisi İle Kütüphane Yükleme
31 Temmuz 2026Nesne yönelimli programlama, yazılım geliştirme süreçlerinde önemli bir yer tutar. Python, bu yaklaşımı destekleyen güçlü bir programlama dilidir. Bu makalede, Python'da nesne yönelimli programlama kavramlarını, sınıfların ve nesnelerin nasıl oluşturulup kullanıldığını inceleyeceğiz.
İçindekiler
Nesne Yönelimli Programlama Nedir?
Nesne Yönelimli Programlama (OOP), yazılım geliştirme süreçlerinde nesnelerin, sınıfların ve etkileşimlerin kullanıldığı bir yaklaşımdır. OOP, yazılım projelerinin daha organize, esnek ve sürdürülebilir olmasını sağlar. Bu programlama paradigması, gerçek dünya nesnelerini modellemek için idealdir. Nesneler, verileri ve bu verilere uygulanabilen fonksiyonları bir arada tutarak, yazılımın karmaşıklığını azaltır ve okunabilirliğini artırır.
OOP, dört temel prensip üzerine kuruludur: kapsülleme, kalıtım, polimorfizm ve soyutlama. Kapsülleme, nesnelerin iç durumunu gizleyerek dış dünyadan korunmasını sağlar. Kalıtım, bir sınıfın başka bir sınıftan özellikler ve davranışlar devralmasına olanak tanır. Polimorfizm, bir nesnenin farklı şekillerde davranabilmesini sağlar. Soyutlama ise karmaşık sistemlerin basit arayüzlerle yönetilmesine imkan verir. Bu özellikler, yazılımın daha modüler ve yeniden kullanılabilir olmasını destekler.
Python’da Class (Sınıf) Kavramı
Python’da sınıf, bir nesnenin özelliklerini ve davranışlarını tanımlayan bir yapıdır. Sınıflar, gerçek dünyadaki nesneleri temsil etmek için kullanılır ve nesnelerin ortak özelliklerini ve yöntemlerini tanımlamak amacıyla oluşturulur. Python’da sınıfları tanımlamak için “class” anahtar kelimesi kullanılır. Sınıflar, nesne yönelimli programlamanın temel taşlarından birini oluşturur ve programcıların daha düzenli ve yapılandırılmış kod yazmalarına olanak tanır.
Bir sınıf oluşturmak için öncelikle bir sınıf tanımı yapılır. Örneğin, bir “Araba” sınıfı oluşturulabilir. Bu sınıf, arabanın marka, model ve renk gibi özelliklerini içerebilir. Ayrıca, arabanın hızlanma veya fren yapma gibi davranışlarını tanımlayan yöntemler de içerebilir. Aşağıda basit bir sınıf örneği bulunmaktadır:
class Araba:
def __init__(self, marka, model, renk):
self.marka = marka
self.model = model
self.renk = renk
def bilgileri_goster(self):
return f"Marka: {self.marka}, Model: {self.model}, Renk: {self.renk}"
Bu örnekte, “Araba” sınıfı, üç özellik ile başlatılır ve bilgileri_goster adlı bir yöntem tanımlar. Bu sayede, herhangi bir “Araba” nesnesi oluşturulduğunda, o nesnenin özelliklerini kolayca görüntüleyebiliriz. Sınıflar, hem veri hem de işlevsellik sundukları için, OOP’nin güçlü araçlarıdır ve yazılımcılara çok yönlü bir program geliştirme imkanı sağlar.
Object (Nesne) Oluşturma ve Kullanımı
Python’da nesne oluşturma, sınıf tanımı ile başlar. Sınıf, bir nesne türünü tanımlar ve nesnelerin özelliklerini ve davranışlarını belirler. Bu bağlamda, bir sınıfı tanımlarken, sınıfın içindeki özellikleri ve metodları belirlemek oldukça önemlidir. Örneğin, bir “Araba” sınıfı, hız, renk ve model gibi özelliklere sahip olabilir. Bir sınıf tanımlamak için ‘class’ anahtar kelimesi kullanılır ve ardından sınıfın adı yazılır. İşte basit bir sınıf tanımı:
class Araba:
def __init__(self, renk, model):
self.renk = renk
self.model = model
Yukarıdaki örnekte, ‘Araba’ sınıfı için bir yapılandırıcı (initializer) olan ‘__init__’ metodu tanımlanmıştır. Bu metod, yeni bir nesne oluşturulduğunda otomatik olarak çağrılır ve nesnenin özelliklerini belirler. Nesne oluşturmak için sınıfı çağırarak bir örneğini oluşturmak yeterlidir:
benim_arabam = Araba("Kırmızı", "Toyota")
Bu işlem, ‘benim_arabam’ adlı bir nesneyi oluşturur ve bu nesne, ‘renk’ ve ‘model’ özelliklerine sahip olacaktır. Ayrıca, nesne ile birlikte metodlar da tanımlanabilir. Örneğin, hızlanma gibi bir davranışı temsil eden bir metod ekleyebiliriz:
def hizlan(self, artis):
self.hiz += artis
Bu metod, hız değişimini yönetebilir. Böylece, nesneleri oluşturarak onlarla etkileşim kurmak, programın gerçek hayattaki nesnelerle benzer bir şekilde çalışmasını sağlar.
Python’da Kalıtım ve Polimorfizm
Pythonda nesne yönelimli programlamanın önemli bir özelliği kalıtımdır. Kalıtım, bir sınıfın (alt sınıf) başka bir sınıftan (üst sınıf) özellik ve metodları devralmasını sağlar. Bu sayede, kod tekrarını azaltarak daha verimli bir yapı kurabiliriz. Örneğin, bir ‘Araç’ sınıfından ‘Araba’ ve ‘Motosiklet’ gibi alt sınıflar oluşturabiliriz:
class Arac:
def __init__(self, marka):
self.marka = marka
class Araba(Arac):
def __init__(self, marka, model):
super().__init__(marka)
self.model = model
class Motosiklet(Arac):
def __init__(self, marka, tip):
super().__init__(marka)
self.tip = tip
Burada, ‘Arac’ sınıfı üst sınıf olarak tanımlanmış ve ‘Araba’ ile ‘Motosiklet’ bu sınıftan kalıtım almıştır. ‘super()’ fonksiyonu ile üst sınıfın yapılandırıcısı çağrılmıştır. Kalıtım sayesinde, ‘Arac’ sınıfındaki tüm özellikler ve metodlar, alt sınıflarda da kullanılabilir.
Polimorfizm ise, aynı isimdeki metodların farklı sınıflarda farklı şekillerde tanımlanabilmesine olanak tanır. Örneğin, hem ‘Araba’ hem de ‘Motosiklet’ sınıflarında ‘hareket_et’ metodu tanımlanabilir. Her iki sınıf, kendi özel davranışını sergileyerek bu metodu kullanabilir:
def hareket_et(self):
print(f"{self.marka} hareket ediyor!")
Bu şekilde, nesnelerin davranışları üzerinde esneklik sağlayarak OOP’nin gücünden yararlanmış oluruz. Kalıtım ve polimorfizm, yazılım projelerinde daha düzenli ve sürdürülebilir bir kod yapısı oluşturmanın temelini atar.
Gerçek Dünya Problemlerinde OOP Uygulamaları
Nesne yönelimli programlama (OOP), yazılım geliştirmede gerçek dünya problemlerini daha etkili bir şekilde çözmek için güçlü bir paradigma sunar. Bu yaklaşım, gerçek dünya varlıklarını yazılım dünyasına taşımak için sınıflar ve nesneler kullanarak modeller oluşturur. Örneğin, bir otomobil uygulaması geliştirdiğimizi varsayalım. Bu uygulamada otomobilin özelliklerini ve davranışlarını temsil eden bir sınıf oluşturabiliriz. Bu sınıf, otomobilin renk, marka, model gibi özelliklerini içerebilirken, hızlanma, yavaşlama gibi davranışları da tanımlayabilir. Böylece, yazılımımızda araçlarla ilgili tüm işlemleri daha organize ve anlaşılır bir şekilde gerçekleştirebiliriz.
OOP’nin gerçek dünya problemlerinde kullanılmasının bir diğer avantajı, kodun tekrar kullanılabilirliğini artırmasıdır. Bir sınıf oluşturduğumuzda, bu sınıfı farklı nesneler oluşturmak için kullanabiliriz. Örneğin, “Araç” sınıfını tanımladığımızda, bu sınıftan “Otomobil,” “Kamyon,” ve “Motosiklet” gibi alt sınıflar türetebiliriz. Bu sayede, tüm araçların ortak özelliklerini ve davranışlarını tek bir yerden yönetebiliriz. Ayrıca, kalıtım sayesinde alt sınıflar, üst sınıfların sahip olduğu özellikleri ve yöntemleri miras alarak geliştirilebilir. Böylece, yazılımın bakımını ve genişletilmesini kolaylaştırmış oluruz.
Sıkça Sorulan Sorular
1. OOP nedir?
Nesne Yönelimli Programlama (OOP), programları nesneler etrafında yapılandırmaya dayanan bir programlama paradigmasıdır.
2. Class nedir?
Class, nesnelerin oluşturulmasında kullanılan bir şablondur ve bir nesnenin özelliklerini ve davranışlarını tanımlar.
3. Object nedir?
Object, bir class’tan oluşturulan somut bir varlıktır ve özellikleri ve metodları içerir.
4. Python’da class nasıl tanımlanır?
Python’da class, “class” anahtar kelimesi ile tanımlanır ve ardından class adı yazılır, örneğin: “class MyClass:”.
5. Constructor nedir?
Constructor, bir nesne oluşturulduğunda otomatik olarak çağrılan özel bir metoddur ve genellikle “init” metodu olarak adlandırılır.
6. Inheritance (kalıtım) nedir?
Inheritance, bir class’ın başka bir class’tan özellik ve metodları miras almasıdır, böylece kod tekrarı azaltılır.
7. Polymorphism (çok biçimlilik) nedir?
Polymorphism, bir nesnenin farklı şekillerde davranabilme yeteneğidir; aynı metod adı farklı class’larda farklı işlemler gerçekleştirebilir.
8. Encapsulation (kapsülleme) nedir?
Encapsulation, nesne içindeki verilerin dışarıdan erişimini sınırlamak için veri gizlemesi uygulamaktır.
9. Python’da bir object nasıl oluşturulur?
Bir object, class adını çağırarak oluşturulur; örneğin: “my_object = MyClass()”.
10. Class değişkenleri nedir?
Class değişkenleri, tüm nesneler tarafından paylaşılan değişkenlerdir ve class düzeyinde tanımlanır.
11. Instance değişkenleri nedir?
Instance değişkenleri, her nesneye özgü değişkenlerdir ve nesne oluşturulduğunda tanımlanır.
12. Method nedir?
Method, bir class içinde tanımlanan ve nesnenin davranışını belirleyen fonksiyonlardır.
13. Static method nedir?
Static method, sınıfın bir örneğine ihtiyaç duymadan çağrılabilen bir metoddur ve genellikle “staticmethod” dekoratörü ile tanımlanır.
14. Class method nedir?
Class method, sınıfın kendisi ile ilgili işlem yapan bir metoddur ve “classmethod” dekoratörü ile tanımlanır.
15. OOP’nin avantajları nelerdir?
OOP, kodun yeniden kullanılabilirliğini artırır, bakımı kolaylaştırır ve daha yapılandırılmış bir programlama yaklaşımı sunar.
16. Python’da çoklu kalıtım nasıl çalışır?
Python’da bir class birden fazla class’tan kalıtım alabilir; bu durum, virgülle ayrılmış class isimleri ile tanımlanır.
17. Abstract class nedir?
Abstract class, bir veya daha fazla soyut metod içeren ve doğrudan örneği oluşturulamayan bir class’tır.
18. Interface nedir?
Interface, bir class’ın hangi metodları uygulaması gerektiğini tanımlayan bir sözleşmedir, ancak bu metodların nasıl uygulanacağına dair bilgi vermez.
19. Super() fonksiyonu nedir?
Super() fonksiyonu, bir class’ın üst class’ına erişim sağlar ve kalıtım yoluyla miras alınan metodları çağırmaya yarar.
20. OOP ile fonksiyonel programlama arasındaki fark nedir?
OOP, nesneler ve class’lar etrafında yapı kurarken, fonksiyonel programlama, fonksiyonlar ve veri yapıları etrafında çalışır.




