Object Oriented Programlama # 4 - Python Dersleri (Tutorials)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@elektroyazilim·
0.000 HBD
Object Oriented Programlama # 4 - Python Dersleri (Tutorials)
![object.jpg](https://cdn.steemitimages.com/DQmb9SAwWzX6XvD758tzXyxhUrmFP8vUQf9MkpbUpz3x6tm/object.jpg)

Merhabalar

Python programlama derslerine nesne tabanlı programlama ile devam ediyoruz. En son sınıf kavramından bahsetmiş, kendi veri tiplerimizi üretmiştik.

Ayrıca _init()_ fonksiyonunu en basit haliyle kendimiz tanımlamıştık. 
> Bu ders önceki derslerin devamı niteliğinde olduğundan öncelikle onlara bakmanız tavsiye edilir.

Bu dersimizde _init()_ fonksiyonu ile alakalı anlatmadığım noktalardan bahsedeceğim.

_init()_ fonksiyonu tanımlanırken  _self_ parametresi ile birlikte tanımlandığını görmüştük. _init()_ fonksiyonu parametre almasına rağmen biz herhangi bir parametre göndermedik. Peki bu _self_ parametresi ne işe yaramaktadır?

_init()_ fonksiyonundaki _self_ parametresi bir nesne oluşturduğumuz zaman o nesneyi gösteren bir referanstır. Bizler bir nesnenin tüm özelliklerini veya metotlarını bu referans üzerinden erişebiliriz.

_self_ referansı, herhangi bir nesne oluşturulduğunda Python tarafından otomatik olarak gönderilir. Bizim özel olarak self referansını göndermemize gerek yoktur.

> _self_ anahtar kelimesini C# 'daki _this_ anahtar kelimesi gibi düşünebilirsiniz. Kullanım olarak oldukça benzemektedir. Aynı şekilde _init()_ fonksiyonunu da constructor yani kurucu metotlar gibi düşünebilirsiniz.

_init()_ fonksiyonu sayesinde nesnelere başlangıç değerleri verebiliriz. Şimdi _init()_ fonksiyonunu kullanarak aynı sınıftan oluşan nesnelere nasıl farklı değerler  nasıl verilir, görelim. 

İlk olarak sınfımızı tanımlayalım :

![](https://cdn.steemitimages.com/DQmXV2XXdBJcru7XUqvBohxnoLskebNz1sd5Yct3t2o2oDe/image.png)

_computer_ sınıfını içerisinde _init()_ fonksiyonu olacak şekilde baştan tanımladık. _init()_ fonksiyonundaki parametreler, sınıfımızın özelliklerini temsil etmektedir. 

> self.model = model

kodu ile bizim oluşturulacak olan nesnemizin model özelliğine parametre ile gelen model değerini ata diyoruz. Diğer özellikler de aynı şekildedir.

_self_ parametresinin kullanımını zorunludur, oluşturulan nesneyi işaret etmektedir. Ancak uygulamada biz herhangi bir değer vermeyiz, sanki yokmuş gibi davranırız, görelim :

![](https://cdn.steemitimages.com/DQmd34TeDhVyv3h6wYzj6k6s9verv9gQ9woRsPtocFrAdez/image.png)

comp1 ve comp2 adında iki nesne oluşturduk ve sınıf parantezleri içerisine vermek istediğimiz değerleri, _init()_ fonksiyonundaki sıraya uyacak şekilde verdik. 

Şimdi print() fonksiyonunu kullanarak nesnelerimizin özelliklerine bakalım :

![](https://cdn.steemitimages.com/DQmRaYr4ABaBzys4SyeFLtQkPgvfmkfz58VBAsZ9McAgoUH/image.png)

Görüldüğü gibi oluşturduğumuz 2 ayrı nesnenin özellikleri de bizim verdiğimiz değerler gibi ve birbirinden farklıdır.

Peki biz _computer_ sınıfından bir nesneyi ilk yaptığımız gibi parametresiz bir şekilde oluştursak nasıl bir sonuç alırdık ? :

![](https://steemitimages.com/1920x1053/https://cdn.steemitimages.com/DQmcAThvBgNo3NQ6sZ2KdTE1PwkTkgjx1NjDMjSHMtypjFr/image.png)


Görüldüğü gibi hata aldık. Böyle bir hata almamak adına parametrelere default değerler verebiliriz :

![](https://steemitimages.com/1920x1053/https://cdn.steemitimages.com/DQmY8rWBVbhGtS8Y15HzZihwZmzHjnh7KH6zRQ8tHE2eNWi/image.png)

Şimdi de değer vermeyecek şekilde bir nesne oluşturup sonucu görelim :

![](https://cdn.steemitimages.com/DQmSukvj2UbChxGi38UuqUsUQSuaYg2XwppDR3xY83jJU3j/image.png)

Görüldüğü gibi herhangi bir hata almadığımız gibi değerleri yazdırmak istediğimizde belirlediğimiz default değerler geldi. 

Şimdilik bu kadar.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

![yesilayrca.png](https://cdn.steemitimages.com/DQmYZw2bhUomeivJwQ8CiLaTzXTbJPLd1PsSGdcoEE1DfKP/yesilayrca.png)

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,