Skip to main content
 首页 » 编程设计

Python type() 函数返回一个可调用对象

2025年05月04日24shihaiming

type(object) 返回对象的类型。

>>> type(__builtins__) 
<type 'module'> 
>>> name = type(__builtins__) 
>>> type(name) 
<type 'type'> 
>>> name 
<type 'module'> 
 
>>> name('my_module') 
<module 'my_module' (built-in)> 
>>> name('xyz') 
<module 'xyz' (built-in)> 
>>>  

在这个语法中,

my_module = type(__builtins__)('my_module') 

type(__builtins__) 应该返回以 ('my_module') 作为参数的可调用对象。 type(object) 返回可调用对象?

如何理解这是在做什么?

请您参考如下方法:

type() 函数返回对象的类。在 type(__builtins__) 的情况下,它返回一个 Module 类型。模块语义详见:https://docs.python.org/3/library/stdtypes.html#modules

CPython 的源代码在 Objects/moduleobject.c::module_init() 中有:

static char *kwlist[] = {"name", "doc", NULL}; 
PyObject *dict, *name = Py_None, *doc = Py_None; 
if (!PyArg_ParseTupleAndKeywords(args, kwds, "U|O:module.__init__", 
                                 kwlist, &name, &doc)) 

这意味着您可以调用(实例化)模块对象,将模块的名称作为必需参数,并将文档字符串作为可选参数。