Menu
Coddy logo textTech

Class Method Dekoratörü

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

@classmethod dekoratörü, bir örnek (self) yerine sınıfın kendisini ilk parametre (cls) olarak alan metotlar oluşturur.

İşte sınıf metotlarına sahip bir sınıf örneği:

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

Sınıf yöntemlerini sınıf adını kullanarak çağırın:

info = Student.get_school_info()
print(info)

Bazı öğrenciler oluşturun:

alice = Student("Alice")
bob = Student("Bob")

updated_info = Student.get_school_info()
print(updated_info)

Sınıf metotlarını alternatif yapıcılar olarak kullanın:

guest = Student.create_guest_student()
print(guest.name)
print(Student.get_school_info())

Çıktı:

School: Python Academy, Students: 0
School: Python Academy, Students: 2
Guest
School: Python Academy, Students: 3

Sınıf metotları örnekler üzerinden de çağrılabilir:

alice = Student("Alice")
info_from_instance = alice.get_school_info()
print(info_from_instance)

Çıktı:

School: Python Academy, Students: 1

Önemli Nokta: Sınıf özniteliklerine erişmeniz veya nesne oluşturmak için alternatif yollar oluşturmanız gerektiğinde @classmethod kullanın. İlk parametre self değil, cls (sınıfın kendisi) parametresidir.

Kopya kağıdı

@classmethod dekoratörü, bir örnek (self) yerine sınıfın kendisini ilk parametre (cls) olarak alan metotlar oluşturur.

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

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

info = Student.get_school_info()
guest = Student.create_guest_student()

Sınıf metotları örnekler üzerinden de çağrılabilir:

alice = Student("Alice")
info_from_instance = alice.get_school_info()

Sınıf özniteliklerine erişmeniz gerektiğinde veya nesne oluşturmak için alternatif yollar yaratmak istediğinizde @classmethod kullanın.

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