انتقل إلى المحتوى
في هذه الصفحة

مراجعة الكتاب: Python Descriptors

حول الكتاب:

ملخص:

يحتوي هذا الكتاب على جزأين:

  • الجزء الأول يشرح ما هي الواصفات، البيانات مقابل غير البيانات، والتنفيذ الأساسي لواصفات classmethod و staticmethod و property المدمجة.

  • الجزء الثاني يُظهر كيفية تنفيذ واصفاتك المخصصة.

أبرز المحتويات:

الفصل 4: الواصفات في المكتبة المعيارية

  • فئة property
class property:
    def __init__(self, fget=None, fset=None, fdel=None):
        self.fget = fget
        self.fset = fset
        self.fdel = fdel
    def __get__(self, instance, owner):
        if instance is None:
            return self
        elif self.fget is None:
            raise AttributeError("unreadable attribute")
        else:
            return self.fget(instance)
    def __set__(self, instance, value):
        if self.fset is None:
            raise AttributeError("can't set attribute")
        else:
            self.fset(instance, value)
    def __delete__(self, instance):
        if self.fdel is None:
            raise AttributeError("can't delete attribute")
        else:
            self.fdel(instance)
    def getter(self, fget):
        return type(self)(fget, self.fset, self.fdel)
    def setter(self, fset):
        return type(self)(self.fget, fset, self.fdel)
    def deleter(self, fdel):
        return type(self)(self.fget, self.fset, fdel)
  • واصف classmethod
class classmethod:
    def __init__(self, func):
        self.func = func
    def __get__(self, instance, owner):
        return functools.partial(self.func, owner)
  • واصف staticmethod
class staticmethod:
    def __init__(self, func):
        self.func = func
    def __get__(self, instance, owner):
        return self.func

الرأي

استمتعت بقراءة هذا الكتاب، خاصة الجزء الأول، يُظهر نافذة رأي من مطور غير مشارك في التطوير الأساسي لـ Python نفسه. أحياناً يقول أيضاً، اسأل مطوراً أساسياً إذا أردت معرفة التفكير الدقيق وراء ذلك.

لا تحتاج إلى فتح محرر بجانبك أثناء القراءة، لذا قرأته كثيراً في الحافلة.

الخلاصة:

  • المستوى: متقدم
  • أوصي بهذا الكتاب لمطوري Python الذين يحبون معرفة ما يحدث تحت الغطاء، تجربة الوظائف الداخلية لـ Python، وفضول حول كيفية عمل كل شيء.

العودة للأعلى