Python 有人能解释len()函数是如何在内部工作的吗?
我感兴趣的是Python 有人能解释len()函数是如何在内部工作的吗?,python,python-3.x,list,Python,Python 3.x,List,我感兴趣的是len()函数如何在python3内部工作(如何实现) 有人能帮我吗?没那么有趣。它只调用对象的\uuuu len\uuu方法 如果您询问内置列表中的具体实现,那么它就更不有趣了列表实例在属性中保持其长度(至少在CPython中),以节省迭代的需要(因此使len(list)成为O(1)而不是O(n)操作) CPython: static Py_ssize_t list_length(PyListObject *a) { return Py_SIZE(a); } Py_SIZ
len()
函数如何在python3内部工作(如何实现)
有人能帮我吗?没那么有趣。它只调用对象的
\uuuu len\uuu
方法
如果您询问内置列表中的具体实现,那么它就更不有趣了<代码>列表
实例在属性中保持其长度(至少在CPython中),以节省迭代的需要(因此使len(list)
成为O(1)而不是O(n)操作)
CPython:
static Py_ssize_t
list_length(PyListObject *a)
{
return Py_SIZE(a);
}
Py_SIZE
定义为宏
#定义Py_大小(ob)(_PyVarObject_CAST(ob)->ob大小)
因此,len(list)
只是获取底层C对象/结构的ob_size
属性。是开源软件。开悟吧!