Turkhackteam.org/net - Cyber Security Platform

Turkhackteam.org/net - Cyber Security Platform (https://www.turkhackteam.org/)
-   Python (https://www.turkhackteam.org/python/)
-   -   Python ile Nesne Tabanlı Programlamaya Giriş/THT Ar-Ge Kulübü (https://www.turkhackteam.org/python/1585390-python-ile-nesne-tabanli-programlamaya-giris-tht-ar-ge-kulubu.html)

Hacknology 14-09-2017 10:57 10:57

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

Noises 14-09-2017 11:10 11:10

elinize sağlık hocam.

python ile gui dersi de verir misiniz?

visual studio daki gibi butonları, textboxları sürükle-bırak işlemi yapan bir ide ile :)

Hacknology 14-09-2017 14:22 14:22

Alıntı:

Noises´isimli üyeden Alıntı (Mesaj 7389840)
elinize sağlık hocam.

python ile gui dersi de verir misiniz?

visual studio daki gibi butonları, textboxları sürükle-bırak işlemi yapan bir ide ile :)


Olabilir, bakarız

BufGix 15-09-2017 21:28 21:28

Bu __init__ fonksyonuna Java daki yapicilar diyebilir miyiz? Yani yaptiklari is ayni mi?

CRYUS 30-09-2017 13:52 13:52

Sağol ben kitap okuyarak öğreniyorum tavsiye ederim


Şu Anki Saat: 08:38

Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.