إنشاء الكائن بطريقة بديلة بإستخدام 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