Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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库是用C/C++;_Python - Fatal编程技术网

为什么有这么多Python库是用C/C++;

为什么有这么多Python库是用C/C++;,python,Python,在大多数语言中,可以安全地假设库是用同一种语言编写的,即Java库通常是用Java编写的 在Python中,情况似乎并非如此。许多高性能库(如numpy、pandas等)都是用C/C++编写的,并为方便起见提供了Python绑定。看起来我们可以调用这些C/C++库而不是Python库 这是为什么?您的问题的答案就隐藏在其中:“许多高性能库……都是用C/C++编写的。” 从Python这样的语言调用低级语言有两个原因,性能就是其中之一。例如,Numpy通过小心地管理(和重用)内存实现了很多性能,并

在大多数语言中,可以安全地假设库是用同一种语言编写的,即Java库通常是用Java编写的

在Python中,情况似乎并非如此。许多高性能库(如
numpy
pandas
等)都是用C/C++编写的,并为方便起见提供了Python绑定。看起来我们可以调用这些C/C++库而不是Python库


这是为什么?

您的问题的答案就隐藏在其中:“许多高性能库……都是用C/C++编写的。”

从Python这样的语言调用低级语言有两个原因,性能就是其中之一。例如,Numpy通过小心地管理(和重用)内存实现了很多性能,并且从Python调用它避免了在Python中编写相同函数的垃圾收集开销


调用用另一种语言编写的库的另一个原因是做源语言中不可能做的事情,例如利用非阻塞I/O系统调用,或使用平台的特殊功能,如向量处理指令或GPGPU。

在其在web开发和数据科学中变得突出之前,Python的主要定位是作为C库和应用程序的“粘合语言”。考虑到Python的相对缓慢,用C编写快速代码并用Python提供友好的界面一直是推荐的策略。