Ana içeriğe atla

Python Sınıflar

Merhaba arkadaşlar. Bu yazıda sınıfın ne olduğunu ve Python'da bir sınıfı nasıl tanımlayacağımızı anlatmaya çalışacağım. Yazıdan daha verimli yararlanmanız için, Python temelinizin olmasında fayda var. Öyleyse başlayalım :)

Öncelikle bir sınıfın ne olduğundan bahsedelim. Bir sınıf, aynı amaca hizmet eden değişkenlerin ve fonksiyonların(metotların) birarada tutulmasıdır. Yani bir takım işlemler yapıyorsak ve bu işlemle ilgili tanımladığımız değişkenler ve metotlar birbiriyle ilişkiliyse, bunları bir sınıf yapısı altında tutmak gerekir.


Değişkenlerimizi ve fonksiyonlarımızı birarada tuttuğumuz bu sınıfı kullanmamız için onu bir nesne haline getirmemiz gerekir. Yani örnekleme yapmamız gerekir. Şimdi basit bir şekilde Python'da bir sınıfı nasıl tanımlayacağımızı görelim. Diyelim ki 4 işlem yapan bir program yazacağız. Toplama,çıkarma,çarpma,bölme. Bunlar hepsi Hesap adında bir sınıfın içinde toplanabilir. Sınıfımızın şekli şöyle olacaktır


Burada "self" ifadesine takılmayın. İleride buna değineceğiz. Sadece şimdilik bir sınıfı nasıl tanımladığımıza bakın. Gördüğünüz gibi bir Hesap sınıfı yaptık ve bu sınıfın içinde Hesap işlemine dair 4 adet işlem tanımladık. Yani 4 fonksiyon. Peki yazdığımız bu Hesap sınıfını nasıl kullanacağız? Yukarıda da dediğimiz gibi sınıfımızı örneklememiz gerekiyor. Hemen bir örnek yapalım;


İşte gördüğünüz gibi basit bir şekilde sınıfımızı kullanılabilir hale getirdik. Dikkat edin sınıfımızı örneklerken çift parantez kullandık. islem = Hesap yaparsak örneklememiş oluruz. Buna dikkat edelim. Örneklediğimiz islem değişkeni, bir nesnedir. Artık Hesap sınıfının özelliklerini kullanabiliriz


Kodu çalıştırırsanız, ekrana 32 yazdıracaktır. Böylece ilk sınıfımız tanımlamış,örneklemiş ve çalıştırmış olduk. Şimdi, başka bir örnek yapalım ve bu kez önce kodları verip sonra açıklamaya geçelim.

Örnekteki sınıfta yeni bir şey görüyoruz. __init__ fonksiyonu. Bu fonksiyon, sınıfı ilk örneklediğimizde otomatik olarak çalıştırılan ilk fonksiyondur. Peki ne amaçla kullanılabilir? Örneğin sınıfımızı bazı değerlerle başlatmak istediğimizde __init__fonksiyonunu kullanabiliriz. Örneğin örneğimizde bir insanın adını,boyunu,kilosunu ve cinsiyetini vererek bu değerlerle bir Insan örneği oluşturulmasını istedik. Sonra da, self yardımı ile başta tanımladığımız bu değerleri sınıfın diğer fonksiyonlarında kullanabildik. isimSoyle() fonksiyonumuzda dikkat ederseniz self.isim ile kişinin ismini aldık. self ifadesi, örneklediğimiz nesnenin kendisini ifade eder. Yani, hangi nesneyi tanımladıysak o nesneyi ifade eder. ali nesnesinde self.isim, alinin ismini ifade eder, zeynep nesnesinde self.isim zeynep'in ismini ifade eder. Kafanız karıştıysa aşağıdaki örneği biraz inceleyin

Kodu daha iyi anlayabilmek için değerleri kendinize göre değiştirin, farklı sayılar verin, kendiniz bir fonksiyon eklemeye çalışın. Hata almanız hiç sorun değil. En azından neyi değiştirdiğinizde ne olduğunu daha iyi anlarsınız.

Bu yazıda bu kadar :) Umarım anlaşılır olmuştur. Eğer anlamadığınız bir yer olursa yorumda belirtmeyi unutmayın. Görüşmek üzere...

Yorumlar

  1. verdiğiniz örnekler görünmüyor

    YanıtlaSil
    Yanıtlar
    1. Tekrar kontrol edebilir misiniz? Bir takım değişiklikler yaptım.

      Sil

Yorum Gönder

Bu blogdaki popüler yayınlar

Python Soket Programlama

Merhaba arkadaşlar. Bugün sizlerle birlikte Python'da socket programlama yapacağız. Bunun için Python da socket kütüphanesini kullanacağız. Peki nedir bu socket programlama? Soket programlama, sizin iki program arası yada iki bilgisayar arası iletişim kurmanızı sağlar. İşte bizde bugün iki programımızı birbiri ile haberleştireceğiz. Bunun için elimizde iki program olacak. Birinci program,mesaj bekleyen program olacak, diğeri ise mesaj gönderen program.

Infix to postfix dönüşümü

Infix to postfix dönüşümü, operatorün ortada olduğu a+b yazım şeklini operatorün sonda olduğu ab+ yazım şekline dönüştürme işlemidir.  Infix gösterimi, bizler için kolay bir gösterim olsa da makineler için öyle değildir. İfadeyi soldan sağa doğru okurken a + b * c işleminde önce b ile c yi çarpıp sonra da a ile toplamayı kolay bir şekilde yapabiliriz çünkü bizim ifadeyi sıra ile soldan sağa adım adım giderek okuma zorunluluğumuz yok. Önce b*c nin öncelikle olduğunu görerek oradan başlar, sonra a ile kolayca toplarız.

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim