Merhabalar, bu yazımda Python’daki metod türlerinden bahsetmeye çalışacağım.
Metodlarda 3 türümüz vardır.
- Obje metodları -> sınıflardan ürettiğimiz objeler üzerinden direkt erişebildiğimiz methodlardır
- Sınıf metodları -> sadece sınıflar üzerinden erişebildiğimiz metodlardır
- Static metodlar -> hem sınıf hem de objeler üzerinden çağrılabilen metodlardır
Metodlar da birer fonksiyondur. Sanırım şu şekilde bir ayrım yaparsak hata yapmış sayılmayız: bir sınıfa ait fonksiyonları metod, anonim olanları ise direkt fonksiyon olarak adlandırabiliriz.
Ön Hazırlık
Aşağıdaki User sınıfını kullanarak örneklerimizi gerçekleştireceğiz.
Obje Metodları
Bir sınıftan ürettiğimiz objeler üzerinden bu metodlara erişebiliriz. instance.method() kullanımı ile bu metodları kullanabiliriz. Herhangi bir decorator almazlar. Parametre olarak self keywordunu alırlar.
Bu metodu user.introduce_yourself() şeklinde kullanabiliriz.
Sınıf Metodları
Bu metodlar ise parametre olarak sınıfı (cls -> genel kullanım) yani kendilerini alırlar. Obje metodlarında self.username olarak objenin özelliklerine erişirken burada cls.metod diyerek sınıflar üzerinde işlem yaparız. @classmethod decoratorunu kullanırlar.
Bu metodumuzda cls(*row) ile User sınıfından oluşturulmuş bir objeyi return ediyoruz. cls parametresi sınıfın kendisini temsil etmektedir. Bu metodu ise şu şekilde kullanmaktayız.
Static Metodlar
Static metodlar ise ne obje ne de sınıf metodlarıdır. Sınıfların içinde yazılabilirler fakat aralarındaki temel ayrım şudur: sınıf metodları sınıfın kendisi ile ilgilenirken static metodlar parametrelerle ilgilenir. Sınıf içerisinde faydalı fonksiyonları topluyoruz gibi düşünebiliriz. Aldıkları parametreler sınıfı veya objeyi temsil etmez.
Hem objelerden hem de sınıflardan erişebiliriz.
Umarım faydalı olmuştur. Sağlıklı günler dilerim.