Tekil Mesaj gösterimi
Hacknology
Hacknology - ait Kullanıcı Resmi (Avatar)
Geliştirici
Üyelik tarihi:
10/2015
Nereden:
rm -rf /
Mesajlar:
2.709
Konular:
150
Teşekkür (Etti):
Teşekkür (Aldı):
Ticaret:
(0) %
14-09-2017 10:57
#1
Python ile Nesne Tabanlı Programlamaya Giriş/THT Ar-Ge Kulübü
Python'da sınıf işlemleri

Önceki bir c++ sınıf yapılarını anlattığım yazımda sınıfların amacından bahsetmiştim. O yüzden amacından ve mantığından derinlemesine bahsetmeden kodlama işlemine geçmek istiyorum, zaten yazarken mantığı da oturacaktır.

Sınıf Oluşturmak:
Burada yapacağımız işlem aslınca çok basit, sadece tek bir satırla bir sınıf tanımlayacağız.
Kod:
Class SinifAdi:
veya
Kod:
Class SinifAdi():
Yalnız burada dikkat etmemiz gereken bir nokta var. Yanlış hatırlamıyorsam Python 2.2 den sonra gelen bir güncelleme ile sınıflar 2 ye ayrıldı. "new-style class" ve "old-style class". Farklarını google dan daha iyi araştırabilirsiniz lakin biz "new-style class" lara göz atacağız.
İkisini nasıl ayırt edeceğinize değinecek olursak;
Kod:
class SinifAdi(): #old-style
Kod:
class SinifAdi(object): #new-style
Ve bu sınıfın altına o sınıfla alakalı yapacağımız işlemleri gireceğiz. Basit bir sınıf fonksiyonu
Kod:
class Sinifim(object):
        def __init__(self):
                #TODO
        def fonk1(self):
                #TODO
        def fonk2(self):
                #TODO
biçiminde olabilir. Eğer self in ne olduğunu merak ediyorsanız stackof sizin için açıklama getirmiş.
https://stackoverflow.com/questions/...-to-a-beginner
Şimdi örnek bir nesne tabanlı uygulama yazalım.
Kod:
#THT ARGE KULUP
class Sinifim(object):
        def __init__(self, o1, o2):
                #Tanımlamalarımızı yapıyoruz.
                self.ogrenci1 = o1
                self.ogrenci2 = o2
                self.liste = []
        def fonk1(self):
                #ögrencileri ekliyoruz
                self.liste.append(self.ogrenci1)
                self.liste.append(self.ogrenci2)
                return self.liste
        def fonk2(self):
                #İsimleri yazdiriyoruz
                for isim in self.fonk1():
                        print isim
sinifim = Sinifim("Hackno", "Utku")#Argümanlarla sınıfımızı çağırıyoruz
sinifim.fonk2()
Peki bunun bize avantajları ne? Zira aynı kodu aynen bu şekilde de yazabilirdik.
Kod:
def print_me(x, y):
        print x + "\n" + y
print_me("Hackno", "Utku")
İkisinin de bize verdiği çıktı şu şekilde olacaktır;
Kod:
Hackno
Utku
>>>
Lakin çok büyük kapsamlı projelerde, özellikle toplu çalışılan projelerde herkes sizin kendi tarzınızda yazdığınız kodu okuyamayabilir. Nesne yönelimli(OOP) yazmak okunulabilirliği arttırır, daha sonradan kolayca geliştirmenize olanak verir(hey, sadece bir fonksyion daha yazın!), yazarken algoritma mantığınızı geliştirir. Bir sonraki yazımızda görüşmek üzere
---------------------
I surrender my soul
Odin hear my call

flag{Bur4si_b1r_0yun_park1}

hacknology@hacknologyroot:~/
Noises, k3~ Teşekkür etti.