Theme
Primary Color

إنشاء الكائن بطريقة بديلة بإستخدام classmethod

ال classmethod بتستقبل الكلاس نفسه في أول معامل وبتفيد في عمل طريقة إضافية لإنشاء الكائن

إنشاء كائن من نص

نقسم النص ونجهز المعاملات ثم نستدعي cls لإنشاء الكائن

class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def from_text(cls, text):
        name, age = text.split(":")
        return cls(name, int(age))

user = User.from_text("Osama:40")
print(user.name)
print(user.age)

النتيجة

Osama
40

إحترام الكلاس المستدعي

إستخدام cls بدل إسم الكلاس مباشرة بيخلي الطريقة ترجع نوع الكلاس الفرعي

class User:
    @classmethod
    def create(cls):
        return cls()

class Admin(User):
    pass

print(type(Admin.create()).__name__)

النتيجة

Admin
python شرح