- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Bazen bir fonksiyon, ne nesnenin içindeki verilere (self.ad) ne de sınıfın kendi verilerine (cls.stok_kodu) erişime ihtiyaç duyar, ancak mantıksal olarak o sınıfa aittir.
Statik Metot: Sadece sınıf içinde mantıksal olarak gruplanmış, nesneden ve sınıftan tamamen bağımsız olan fonksiyonlardır.
Dekoratör: Metodun hemen üzerine @staticmethod dekoratörü konulur.
Argümanlar: Ne self ne de cls argümanını almaz. Tıpkı geleneksel bir Python fonksiyonu gibi tanımlanır.
PI = 3.14 # Sınıf niteliği
@staticmethod
def daire_alani(yaricap):
# Ne self ne de cls kullanılır.
return Hesaplamalar.PI * (yaricap ** 2)
@staticmethod
def mutlak_deger(sayi):
# Başka bir basit yardımcı işlev
return abs(sayi)
Statik metotlar, bir sınıfa ait olmasalar bile, o sınıfın görev alanıyla (domain) ilgili olan yardımcı işlevleri (utility functions) düzenlemek için kullanılır.
Örnek: Bir FormDogrulayici sınıfı düşünün. Bir emailin geçerli olup olmadığını kontrol etmek, nesnenin veya sınıfın durumuna bağlı değildir, sadece dışarıdan gelen veriye bağlıdır.
class KullaniciFormDogrulayici:
@staticmethod
def email_gecerli_mi(email_adresi):
if "@" in email_adresi and "." in email_adresi:
return True
return False
# Statik metotlar, nesne oluşturmaya gerek kalmadan
#sınıf üzerinden çağrılır.
email_1 = "deneme@site.com"
email_2 = "gecersiz-email"
print(f"'{email_1}'{KullaniciFormDogrulayici.email_gecerli_mi)}")
print(f"'{email_2}'{KullaniciFormDogrulayici.email_gecerli_mi}")
Bir fonksiyon yazarken kendinize şunu sorun:
"Bu fonksiyon, self (nesne verileri) kullanıyor mu?"
Evet: Normal metot kullanın.
"Bu fonksiyon, cls (sınıf verileri) kullanıyor mu?"
Evet: Sınıf metodu (@classmethod) kullanın.
"Hayır, sadece argümanlarla çalışıyor ama bu sınıfla ilgili bir görev yapıyor."
O zaman: Statik metot (@staticmethod) kullanın.
🔥 Python Kariyerinizi Hemen Başlatın!
Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.
[ Python Eğitimi Sıfırdan İleri Seviye ]
Tıklayın ve Python Eğitimine Hemen Kaydolun!
Yorumlar
Yorum Gönder