Python types.SimpleNamespace是如何实现的?
我注意到Python types.SimpleNamespace是如何实现的?,python,python-3.x,sys,Python,Python 3.x,Sys,我注意到类型。SimpleNamespace类似乎是递归实现的。在types模块中,类被定义为type(sys.implementation)。但是,type(sys.implementation)只返回types.SimpleNamespace,这是不可能的,因为这两个名称依赖于彼此的可用性。types.SimpleNamespace实际上是如何实现的?当然type(sys.implementation)就是types.SimpleNamespace,但这并不意味着后者是类型的源(而类型。不会
类型。SimpleNamespace
类似乎是递归实现的。在types
模块中,类被定义为type(sys.implementation)
。但是,type(sys.implementation)
只返回types.SimpleNamespace
,这是不可能的,因为这两个名称依赖于彼此的可用性。types.SimpleNamespace
实际上是如何实现的?当然type(sys.implementation)就是types.SimpleNamespace
,但这并不意味着后者是类型的源(而类型。
不会作为任何输出出现)。与类型
中公开的大多数类型一样,SimpleNamespace
在实现中定义(在C中用于CPython),而类型
只为访问该类型“方便”的任何环词提供名称。(TracebackType
是通过实际抛出和捕获一个伪异常获得的!)sys
模块实际上使用了内置类型,以及创建version\u info
等其他把戏,即使该类型无法实例化(之后).关于你所说的类型
给内置类型命名——没错,但是类型(lambda:0)
并不是类型。FunctionType
,它只是函数
。不过,这仍然是一个很好的答案。@fluffyyboii:Here,“提供名称”的意思是“允许通过名称访问”,而不是“将名称存储到”。请参见,尽管与大多数对象不同,类型确实知道自己的名称,例如,函数,而不是您用来获取它们的任何名称。