2024-03-29 10:38:24 发布
网友
typing.py(来自与Anaconda捆绑的Python 3.6.6)声明List类,如下所示:
typing.py
List
class List(list, MutableSequence[T], extra=list):
就我的理解而言,这意味着List类继承了list和{})。继承列表中extra赋值的含义是什么?在
list
extra
Intyping.py类GenericMeta接受extra关键字参数。extra参数只是GenericMeta用于内部记账的参数之一。更新发生在GenericMeta的__new__中:
GenericMeta
__new__
namespace.update({'__origin__': origin, '__extra__': extra, '_gorg': None if not origin else origin._gorg})
从这一点起,cls.__extra__就成为Typing内部API的一部分,非常类似于__getattr__或{}。从源代码来看,__extra__似乎是用来帮助为传入的类设置属性:
cls.__extra__
Typing
__getattr__
__extra__
这段代码使用__extra__来设置_abc_registry和{}
_abc_registry
In
typing.py
类GenericMeta
接受extra
关键字参数。extra
参数只是GenericMeta
用于内部记账的参数之一。更新发生在GenericMeta
的__new__
中:从这一点起,}。从源代码来看,
^{pr2}$cls.__extra__
就成为Typing
内部API的一部分,非常类似于__getattr__
或{__extra__
似乎是用来帮助为传入的类设置属性:这段代码使用}
__extra__
来设置_abc_registry
和{相关问题 更多 >
编程相关推荐