Menu
Coddy logo textTech

Static Method Dekoratörü

Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 11 / 64.

@staticmethod dekoratörü, self parametresine veya sınıfa ihtiyaç duymayan metotlar oluşturur. Normal fonksiyonlar gibi çalışırlar ancak sınıfa aittirler.

Statik metotları olan bir sınıf örneği aşağıdadır:

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Statik metotları sınıf adını kullanarak çağırın:

result = MathHelper.add(5, 3)
print(result)

check = MathHelper.is_even(10)
print(check)

Onları bir nesneden de çağırabilirsiniz:

helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)

Çıktı:

8
True
6

Statik metotlar örnek veya sınıf verilerine erişmez:

class Calculator:
    brand = "Python Calc"
    
    def __init__(self, owner):
        self.owner = owner
    
    @staticmethod
    def multiply(x, y):
        # self.owner veya Calculator.brand'e erişemez
        return x * y

Önemli Nokta: Sınıfla ilgili olan ancak örneğe (self) veya sınıf verilerine erişmesi gerekmeyen bir fonksiyona ihtiyaç duyduğunuzda @staticmethod kullanın. self parametresine gerek yoktur.

Kopya kağıdı

@staticmethod dekoratörü, self parametresine veya sınıfa ihtiyaç duymayan metotlar oluşturur. Bunlar normal fonksiyonlar gibi çalışır ancak sınıfa aittirler.

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Statik metotları sınıf adını kullanarak çağırın:

result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)

Onları bir nesne üzerinden de çağırabilirsiniz:

helper = MathHelper()
result2 = helper.add(2, 4)

Statik metotlar örnek (instance) veya sınıf verilerine erişmezler - self parametresine gerek duyulmaz.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Object Oriented Programming bölümündeki tüm dersler