İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Sınıf Kullanımı

Ceys - ait Kullanıcı Resmi (Avatar)
Süper Moderatör
Üyelik tarihi:
04/2016
Mesajlar:
7.026
Konular:
690
Teşekkür (Etti):
144
Teşekkür (Aldı):
3106
Ticaret:
(0) %
07-12-2017 12:03
#1
Python Sınıf Kullanımı
Sınıf Nedir?

Nesne olarak da ifade edilebilen sınıflar, aslında günlük hayatta bildiğimiz sınıflardır. Bu duruma şöyle bir örnek verebiliriz, Okuldaki sınıfları düşünün diyelimki 12-A sınıfında ahmet , 12-B sınıfında mehmet olsun bunlar kendi sınıflarında birer bireydir. Kendi sınıflarında mevcut olan tüm olanaraklardan yararlanabilirken birbirlerindeki sınıflardan yaranalamazlar. Programlamada da bu mantık düşünülür.
  • Sınıflarların genel olarak kullanımı, sürekli tekrarlanan kodları önüne geçmeye olanarak sağlar. Aynı zamanda ekip çalışmalarındada güzel bir alternatif olabiliyor.

Sınıf Oluşturma ve Kullanma :


Öncelikle bir Sınıf oluşturalım :

Kod:
class topla():
"""Toplama Sınıfı"""
“”” Açıklama Satırı “” olarak ifade edilir. Daha önceden bir sınıf yazdık ne için yazdığımızı unuttuk bu açıklama satırı çağırıp ne işe yaradığını öğrenebiliriz :

Kod:
print(topla.__doc__)
>>> Toplama Sınıfı
Yavaş yavaş Sınıfımızı oluşturalım :

Kod:
class topla():
    """Toplama Sınıfı"""
    def __init__(self):
Sınıflara veri aktarımı yapmak münkündür. Bir sınıf çağırıldığında ilk olarak nesnedeki __init__() fonksiyonu işletilir :

__init__() fonksiyonu self parametresini aldığı görülüyor. Bir nesnede tanımlanan işlevlerin nesne dışından çağırabilmesi için o nesneye ait bir işlev olduğunu belirtmek üzere self parametresi verilir.

Bir nesneye veri aktarımı __init__() işlevi ile yapılır örneğin :

Kod:
class topla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
print('Toplam = ',x+y)
Sinifi_cagir = topla(2,3)
Çıktı: >>> Toplam = 5

Şimdi yolladığımız x,y değişkenlerine ulaşmaya çalışalım :

Kod:
class topla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
print('Toplam = ',x+y)
Sinifi_cagir=topla(2,3)
# x elemanı çağırdık
print(Sinifi_cagir.x)
Bir hatayla karşılaştık :

Kod:
print(Sinifi_cagir.x)
AttributeError: 'topla' object has no attribute 'x'
Gördüğünüz gibi bir sorunumuz var , nesne içerisinde tanımlı bir değişkenin değerine dışarıdan ulaşamiyoruz. Eğer bir nesne tanımlamışsak bu nesne içerisinden de başka işlevleri tanımlayacağımız muhakkaktır. Nesneye verdiğimiz parametreler __init__ () işlevine aktrılıyor, o halde __init__() işlevine nasıl ulaşacağız ? Self özelliğini yukarda bahsetmiştik. Bir nesnenin kendisini self ile göstermiştik. Eğer bir değişkeni self’in bir özelliği olarak tanımlarsak, o zaman nesne içerisindeki tüm işlevlerden erişebildiği gibi sınıf dışarısından da erişebilir. Üstelik değerleride değişlebilir.

Bu bilgiler doğrultusunda hatayı düzeltelim.

Kod:
class topla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
self.x = x
self.y = y
print('Toplam = ',self.x+self.y)
Sinifi_cagir = topla(2, 3)
# x elemanı çağırdık
print('X = ',Sinifi_cagir.x)
# y elemanı çağırdık.
print('Y = ',Sinifi_cagir.y)
Burada self.x , self.y tanımlaması ile sınıfın elemanları olduğunu belirttik bir nevi global tanımlamak yaparak heryerden ulaşılabilmesini sağladık.

Alıntı:
Dolasıyla çıktı :
Toplam = 5
X = 2
Y = 3
Nesne Fonksiyonları

Bu sefer yapacağımız olay ise, __init__() üzerine yollayacağımız veriler işlendikten sonra self üzerine aktarım sağlayacağız. Daha sonra bir fonksiyon yazarak, oluşan sonucu geri döndereceğiz.

Öncelikle bir sınıf tanımlıyalım, oluşan elemanlarını kendisine ait olduğunu belirtelim :

Kod:
class Hesapla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
self.x = x
self.y = y
Şimdi ise Topla ve Çıkarma fonksiyonlarını tanımlıyalım :

Kod:
class Hesapla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
self.x = x
self.y = y
def Topla(self):
toplam = self.x+self.y
return toplam
def cikarma(self):
cikar = self.x-self.y
return cikar
Şimdi ise çağıralım :

Kod:
class Hesapla():
"""Toplama Sınıfı"""
def __init__(self,x,y):
self.x = x
self.y = y
def Topla(self):
toplam = self.x+self.y
return toplam
def cikarma(self):
cikar = self.x-self.y
return cikar
Sinifi_cagir = Hesapla(2,3) # değerleri yolladık.
# sinifin içindeki topla fonk. çağır.
print(Sinifi_cagir.Topla())
# sinifin içindeki çıkarma fonk. çağır.
print(Sinifi_cagir.cikarma())
Alıntı:
ÇIKTI:
>>> 5
>>> -1
Sınıfların genel olarak kullanımı bu şekildedir. Elbette python dili size sınıf kullanarak program yazma koşulu sunmuyor fakat, sınıf alışkanlığı olması gerekiyor. Derli toplu, olması herzaman avantajdır.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı