Update p14_capture_class_attribute_definition_order.rst
format
This commit is contained in:
@@ -53,7 +53,7 @@
|
|||||||
def __prepare__(cls, clsname, bases):
|
def __prepare__(cls, clsname, bases):
|
||||||
return OrderedDict()
|
return OrderedDict()
|
||||||
|
|
||||||
在这个元类中,执行类主体时描述器的定义顺序会被一个 ``OrderedDict``捕获到,
|
在这个元类中,执行类主体时描述器的定义顺序会被一个 ``OrderedDict`` 捕获到,
|
||||||
生成的有序名称从字典中提取出来并放入类属性 ``_order`` 中。这样的话类中的方法可以通过多种方式来使用它。
|
生成的有序名称从字典中提取出来并放入类属性 ``_order`` 中。这样的话类中的方法可以通过多种方式来使用它。
|
||||||
例如,下面是一个简单的类,使用这个排序字典来实现将一个类实例的数据序列化为一行CSV数据:
|
例如,下面是一个简单的类,使用这个排序字典来实现将一个类实例的数据序列化为一行CSV数据:
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
----------
|
----------
|
||||||
讨论
|
讨论
|
||||||
----------
|
----------
|
||||||
本节一个关键点就是OrderedMeta元类中定义的 `` __prepare__()`` 方法。
|
本节一个关键点就是OrderedMeta元类中定义的 ``__prepare__()`` 方法。
|
||||||
这个方法会在开始定义类和它的父类的时候被执行。它必须返回一个映射对象以便在类定义体中被使用到。
|
这个方法会在开始定义类和它的父类的时候被执行。它必须返回一个映射对象以便在类定义体中被使用到。
|
||||||
我们这里通过返回了一个OrderedDict而不是一个普通的字典,可以很容易的捕获定义的顺序。
|
我们这里通过返回了一个OrderedDict而不是一个普通的字典,可以很容易的捕获定义的顺序。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user