paul对《Learning Python, 5th Edition》的笔记(3)

Learning Python, 5th Edition
  • 书名: Learning Python, 5th Edition
  • 作者: Mark Lutz
  • 页数: 1600
  • 出版社: O'Reilly Media
  • 出版年: 2013-7-6
  • 第1233页 Chapter 38: Managed Attributes

    刚开始接触OOP,很多规则需要加强学习:

    class CalcAttrs:
        X = DescState(2) # Descriptor class attr
        Y = 3 # Class attr
        def __init__(self):
            self.Z = 4 # Instance attr
    2016-01-08 12:02:24 回应
  • 第1234页 Chapter 38: Managed Attributes

    在这个例子中,X就是InstState的self,obj就是instance,通过赋值语句直接修改了obj._X,而调用obj.X会捕获一次__get__的调用

    >>> obj=CalcAttrs()
    >>> obj.X=5
    InstState set
    >>> obj._X
    5
    >>> obj.X
    InstState get
    50
    2016-01-08 13:30:31 回应
  • 第1234页 Chapter 38: Managed Attributes

    个人理解两种Descriptor作用 1. Descriptor state :用于不同的client class,同一个client class不同的实例会共享修改后的属性值; 2. Instance state:用于同一个client class下不同的实例,不共享修改后的属性值,新的实例还会保留client class中的属性值;

    2016-01-08 13:39:57 回应

paul的其他笔记  · · · · · ·  ( 全部8条 )