在python中找到某些功能的特定实现的方法?

时间:2018-06-29 05:27:29

标签: python cpython

背景:今天,当我阅读源代码时,我对@staticmethod感到好奇,并且我认为可以使用具有__get__方法的类来实现此装饰器。确实可以做到,但是效率不高,所以我认为python可能会使用其他方法,例如在C源代码中完成它。我使用grep并发现它在funcobject.h中被提及:

/* The classmethod and staticmethod types lives here, too */
PyAPI_DATA(PyTypeObject) PyClassMethod_Type;
PyAPI_DATA(PyTypeObject) PyStaticMethod_Type;

PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *);
PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *);

但这只是一个头文件,我不知道如何继续我的探索。

所以我在这里提问:

当我想弄清楚某些功能的实现时,是否可以遵循任何有效的方法例程?

例如:python如何实现sort(),它使用快速排序还是合并排序?它会消耗多长时间? O(nlogn)还是O(n2)?

0 个答案:

没有答案