Rumah  >  Artikel  >  pembangunan bahagian belakang  >  为什么 Python 不用 C++ 实现?

为什么 Python 不用 C++ 实现?

WBOY
WBOYasal
2016-06-06 16:22:571889semak imbas

python源码里,C的代码已经完全对象化了,封装、多态等特性已经用C实现,那为什么不直接上C++?这也能使代码可读性更强

回复内容:

参见:
Why is Python written in C and not in C++?programmers.stackexchange.com

1. CPython 1.0发布于1989年,那时候C刚刚标准化,C++还不为人知
2. C比C++有更好的移植性
3. 重写代码是一件大工程 CPython为啥用C而不是C++实现, @用心阁的回答已经很明确。

至于时至今日为啥不用C++实现Python,题主是想要Dropbox的Pyston呗,C++实现的Python 封装、多态这两个特性根本用不到 OOP 语言。必须非用 OOP 语言不可才能比较容易实现的特性是实现继承 (implementation inheritance) 。所以我说喜爱 OO 的人先看看你的系统里实现继承多不多。实际情况是除了 UI framework 没有什么地方非要用到实现继承。 从Python的源码实现上可以认为,Python和C++是分别对C语言做了面向对象的“扩展”,而它们的“扩展”思想是不一样的,C++是极尽可能地减少性能上的损耗,而Python一切都是为了简化对象的高层视图,所以Python用C开发则不需要先经过C++对面向对象的理解,直接用更底层的材料按自己的想法构建出另外一座高楼大厦 在很多大型的C工程中,都采用或部分采用了面向对象的思想,使用C语言写一些封装和对象类似的封装,这样只是为了以面向对象的思想更好的组织整个工程.并不是说写一个面向对象的语言就要另一个面向对象的语言来实现.

还有很多语言底层是用C写的,很多网络库,网络工具等. 个人认为:
1. c语言更接近底层的操作系统,能更耦合于操作系统(你想想为什么LINUX不用C++去写)
2. C语言写使跨平台更好,同样还是观点1中的,操作系统是C写的 因为CPython太老了,而在CPython基础上使用新架构的Pyston是用C++11实现的。 python在windows下的实现都是调用API,这个用C足够。MFC的话只能用C++。 用面向对象的语言开发面向对象的语言经常迷失
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn