Özel Metotlar # 3 - Python Dersleri (Tutorials)

in #zzan5 years ago

object.jpg

Merhabalar

Python programlama derslerinin bu dersiyle özel metotlar konusunu bitireceğiz. Özel metotlar hatırlarsanız Python'un sınıflara default olarak oluşturduğu metotlardı.

Her ne kadar Python bu metotları default olarak bizlere sunsa da bizler amacımıza uygun olarak bunları şekillendirebiliyorduk.

Bir önceki dersimizde init() ve del() metotlarını hazırlamıştık. Bu dersimizde ise str ve len metotlarını yazacağız.

str metodu

str metodu, default olarak kullanımında bir nesnenin hangi sınıfa ait olduğu bilgisini bizlere verir.

Örnek üzerinde görelim :

Bir önceki dersimizdeki Books sınıfını kullanalım. Tabi ilk olarak bu sınıf türünden bir nesne oluşturmamız gerekiyor :

myBook adında bir nesne oluşturduk. Şimdi bu nesneyi biz default olarak yazdırmak istediğimizde str metodu çağrılacak ve aşağıdaki gibi bir mesaj alacağız :

Mesaj myBook nesnesinin Books sınıfına ait bir nesne olduğunu ve bellekte 0x... ile belirtilen adreste tutulduğunu söylüyor.

Şimdi biz str metodumuzu baştan yazalım. Hazırlayacağımız str metodunda kitap bilgilerini yazdıracağımız için showInfo() metodunu siliyorum. İlk olarak _str_metodunun kodlarını verelim:

def str(self):
print("str has been worked...")
print("Kitap Bilgileri\n")
return "Adı : {}\nTürü : {}\nSayfası : {}".format(self.name,self.typee,self.page) + "\n" + super.str(self) + "\n"

str gibi Python özel metotları tanımlanırken başına ve sonuna iki alt tire karakteri konulur. Bunun dışında metot olarak tanımlanması normal metot gibidir : def anahtar kelimesi kullanır ve parametre olarak self referansını başta bulundurmak zorundadır.

print("str has been worked...")

kodu kontrol amaçlı eklenmiştir. Metot içindeki print() fonksiyonunda super() anahtar kelimesini kullandım:

super.str(self)

Buradaki amacım aynı zamanda orijinal str metodundaki bilgileri de almaktı. Sonuç olarak da başarılı oldu. Uygulamasını görelim :


Click here to view full size

myBook adında tekrardan aynı nesneyi oluşturduk ve bu nesneyi print() metodu kullanarak ekrana yazdırdığımızda aşağıdaki sonucu elde ettik :

str has been worked...
Kitap Bilgileri

Adı : Alice Harikalar Diyarında
Türü : Fantastik
Sayfası : 350
<main.Books object at 0x0000001DB84D41D0>

Gayet güzel çalışıyor.

len metodu

len() metodu'nu önceki derslerimizden biraz biliyoruz. string tipindeki bir verinin uzunluğunu bulmak için kullanıyorduk. Ya da herhangi bir dizinin eleman sayısını elde edebilirdik.

Peki biz Books sınıfımız için uyarlayacak olursak ne yapabiliriz? Akla en mantıklı gelen herhalde sayfa sayısını getirmektir.

len() metodunun kod kısmını verelim :

Tanımı oldukça basit. Geri dönüş değeri olan bir metot tanımladık. Bunun için def anahtar kelimesi, zorunlu self parametresi ve return anahtar kelimesini kullandık.

Sınıfımızın son hali aşağıdaki gibidir :

Uygulaması da aşağıdaki gibidir :

Görüldüğü gibi kitap nesnesini len() metodumuza verdiğimizde sayfa numarasını döndürdü.

Şimdilik bu kadar.

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

Teşekkürler.

yesilayrca.png

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

Sort:  

cok ozel metotlar...

Congratulations @elektroyazilim! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published a post every day of the week

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steem users. Learn how here!

You got a 96.69% upvote from @minnowvotes courtesy of @elektroyazilim!

The force is with you! You got a 20.65% upvote from @steemyoda courtesy of @elektroyazilim!

You got a 95.19% upvote from @luckyvotes courtesy of @elektroyazilim!

Coin Marketplace

STEEM 0.15
TRX 0.15
JST 0.028
BTC 53406.15
ETH 2223.47
USDT 1.00
SBD 2.29