top of page

BİLGİSAYAR BİLİMİ KUR 1 - 2. DÖNEM 16. HAFTA - NESNE YÖNELİMLİ PROG. - SİHİRLİ METODLAR

ÜNİTE:


1.3. PROGRAMLAMA


KAZANIMLAR:


1.3.5.2. Proje geliştirme sürecinde işbirlikli olarak görev alır.




PYTHON - Magic Methods (Sihirli Metodlar)



Python'da magic methods (sihirli metodlar), özel olarak tanımlanmış yöntemlerdir ve çift alt çizgi (__) ile başlar ve biterler (örneğin, init, str). Bu yöntemler, sınıfların Python'ın dil özellikleriyle nasıl etkileşime girdiğini kontrol etmek için kullanılır. Magic metodlar sayesinde sınıflarınıza özel davranışlar kazandırabilir, Python'un yerleşik operatörlerini ve işlevlerini yeniden tanımlayabilirsiniz.



1. Nedir ve Ne İşe Yararlar?


Magic metodlar, Python'daki nesnelerin belirli durumlarda nasıl davranacağını tanımlamak için kullanılır.


Örneğin:


  • Bir nesne oluşturulurken (__init__).

  • Bir nesne yazdırılırken (__str__).

  • Operatörler kullanıldığında (__add__, sub, vb.).

  • Nesnelere dizisel erişim yapılırken (__getitem__, setitem).







2. Sık Kullanılan Magic Metodlar


a) Nesne Oluşturma ve Temsil


Bu metodlar, nesnelerin nasıl oluşturulduğunu ve temsil edildiğini kontrol eder.

Metod

Amaç

init

Nesne oluşturulduğunda çalışır. Sınıfın başlatıcı (constructor) metodudur.

del

Nesne yok edildiğinde çalışır (destructor).

repr

Nesnenin geliştirici dostu temsilini döner (debug için).

str

Nesnenin kullanıcı dostu temsilini döner (ör. print()).

new

Yeni bir nesne yaratılmadan önce çağrılır (özelleştirilmiş yaratım işlemleri için).





Örnek kullanım:













b) Aritmetik ve Karşılaştırma Operatörleri

Sınıflarınıza operatörlerle ilgili özel davranışlar ekleyebilirsiniz.

Metod

Operatör/İşlev

add

+ (Toplama)

sub

- (Çıkarma)

mul

* (Çarpma)

truediv

/ (Bölme)

floordiv

// (Taban Bölme)

mod

% (Mod Alma)

eq

== (Eşitlik)

lt

< (Küçüklük)

gt

> (Büyüklük)




Örnek kullanım:












c) Dizisel ve İteratif Davranışlar

Sınıflarınıza liste benzeri davranışlar kazandırabilirsiniz.

Metod

Amaç

getitem

Bir nesneye indeksle erişim sağlar.

setitem

Bir indekse değer atar.

delitem

Bir indeksi siler.

len

Nesnenin uzunluğunu döner.

iter

Nesneyi iteratif hale getirir.





Örnek kullanım:












d) Diğer Magic Metodlar

Metod

Amaç

call

Bir nesneyi fonksiyon gibi çağırmayı sağlar.

contains

in operatörünü özelleştirir.

hash

Nesnelerin hash değerini döner (özelleştirilmiş set).




Örnek kullanım:










3. Magic Metodların Avantajları


  • Kodunuzu Daha Anlaşılır Hale Getirir: Sınıfınızın davranışlarını operatörler ve yerleşik işlevlerle birleştirebilirsiniz.

  • Python’un Esnekliğinden Yararlanır: Nesne yönelimli programlamayı daha güçlü hale getirir.











4. İyi Uygulama Tavsiyeleri


  • Magic metodları yalnızca ihtiyaç duyulduğunda özelleştirin.

  • Kodunuzun okunabilirliğini artırmak için str ve repr gibi metotları tanımlayın.

  • eq, lt gibi karşılaştırma metodlarını tanımlarken birden fazla operatörün birbiriyle uyumlu çalışmasını sağlayın.












Magic Methods (Sihirli Metodlar) Özet Video:















Magic Methods (Sihirli Metodlar) Alıştırmaları:



Alıştırma 1: __init__ ve __str__ Magic Metodları


Bir Kisi sınıfı oluşturun ve init ve str magic metodlarını tanımlayın. Daha sonra bu sınıftan birkaç nesne yaratarak ve onları yazdırarak sınıfın nasıl çalıştığını gözlemleyin.


Görev:


  1. Kisi sınıfını tanımlayın ve init metodunu, isim ve yas parametrelerini kabul edecek şekilde yazın.

  2. str metodunu tanımlayın, bu metodun bir Kisi nesnesini uygun bir formatta döndürmesini sağlayın.

  3. Birkaç Kisi nesnesi oluşturun ve bunları yazdırın.




Çözüm:












Alıştırma 2: __add__ Magic Metodu


Bir Nokta sınıfı oluşturun ve bu sınıfta add magic metodunu tanımlayın. Bu metod, iki noktanın toplandığında yeni bir Nokta nesnesi döndürsün.


Görev:


  1. Nokta sınıfını tanımlayın ve init metodunu, x ve y koordinatlarını alacak şekilde yazın.

  2. add metodunu tanımlayın, bu metod iki Nokta nesnesini alarak yeni bir nokta oluşturacak şekilde yazın.

  3. Birkaç Nokta nesnesi oluşturun ve bu nesneler arasındaki toplama işlemini uygulayın.



Çözüm:















Alıştırma 3: __getitem__ ve __setitem__


Bir Dizi sınıfı oluşturun ve bu sınıfta getitem ve setitem magic metodlarını tanımlayın.


Görev:


  1. Dizi sınıfını tanımlayın. Bu sınıfta init, getitem ve setitem metodlarını yazın.

  2. Bu metodların, dizinin belirli indekslerine erişim ve atama işlemlerini nasıl gerçekleştirdiğini gözlemleyin.

  3. Bu sınıftan bir nesne oluşturun, indeksler üzerinden erişim ve atama işlemleri yapın.




Çözüm:















Magic Methods (Sihirli Metodlar) Alıştırma Çözümleri Özet Video:














Magic Methods (Sihirli Metodlar) - Görevler



Alıştırma 1: __init__ ve __str__ Magic Metodları


Bir Kisi sınıfı oluşturun ve init ve str magic metodlarını tanımlayın. Daha sonra bu sınıftan birkaç nesne yaratarak ve onları yazdırarak sınıfın nasıl çalıştığını gözlemleyin.


Görev:


  1. Kisi sınıfını tanımlayın ve init metodunu, isim ve yas parametrelerini kabul edecek şekilde yazın.

  2. str metodunu tanımlayın, bu metodun bir Kisi nesnesini uygun bir formatta döndürmesini sağlayın.

  3. Birkaç Kisi nesnesi oluşturun ve bunları yazdırın.













Alıştırma 2: __add__ Magic Metodu


Bir Nokta sınıfı oluşturun ve bu sınıfta add magic metodunu tanımlayın. Bu metod, iki noktanın toplandığında yeni bir Nokta nesnesi döndürsün.


Görev:


  1. Nokta sınıfını tanımlayın ve init metodunu, x ve y koordinatlarını alacak şekilde yazın.

  2. add metodunu tanımlayın, bu metod iki Nokta nesnesini alarak yeni bir nokta oluşturacak şekilde yazın.

  3. Birkaç Nokta nesnesi oluşturun ve bu nesneler arasındaki toplama işlemini uygulayın.














Alıştırma 3: __getitem__ ve __setitem__


Bir Dizi sınıfı oluşturun ve bu sınıfta getitem ve setitem magic metodlarını tanımlayın.


Görev:


  1. Dizi sınıfını tanımlayın. Bu sınıfta init, getitem ve setitem metodlarını yazın.

  2. Bu metodların, dizinin belirli indekslerine erişim ve atama işlemlerini nasıl gerçekleştirdiğini gözlemleyin.

  3. Bu sınıftan bir nesne oluşturun, indeksler üzerinden erişim ve atama işlemleri yapın.

















Ödev:


Bir Dizi sınıfı oluşturun ve bu sınıfta getitem ve setitem magic metodlarını tanımlayın.


Görev:


  1. Dizi sınıfını tanımlayın. Bu sınıfta init, getitem ve setitem metodlarını yazın.

  2. Bu metodların, dizinin belirli indekslerine erişim ve atama işlemlerini nasıl gerçekleştirdiğini gözlemleyin.

  3. Bu sınıftan bir nesne oluşturun, indeksler üzerinden erişim ve atama işlemleri yapın


Ouşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.


Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.


egitimdebil@gmail.com


Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)


Bilişim Teknolojileri Öğretmeni: İshak BEZCİ


Son gün ve saat : Pazar gece 12.00









تعليقات


bottom of page