Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python types.SimpleNamespace是如何实现的?_Python_Python 3.x_Sys - Fatal编程技术网

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,“提供名称”的意思是“允许通过名称访问”,而不是“将名称存储到”。请参见,尽管与大多数对象不同,类型确实知道自己的名称,例如,
函数,而不是您用来获取它们的任何名称。