C++或Python

我想知道与C相比,Python的优势是什么
++?在哪些情况下,为什么Python可以比C ++更好?
谢谢!

# 回答1


-----开始PGP签名消息-----
哈希:sha1
库尔达Yon写道:
我是一个相对的新手,所以我无法告诉你有关隐藏的信息
功能或技巧,但是有一些优势会影响我
选择在Python中编码.
1)便携性.写得很好的Python应用程序是100%系统不可知的.
有时,您只需要弄脏并直接打电话给
系统,但是如果您是创意的,则可以使用Pure Python的电话来做.
这意味着没有任何代码移植.您不必维护
*nix的版本,Windows XP的版本,Vista版本和一个版本
OS X的版本.虽然每个版本的不同版本允许
对单个系统的微调优化,这是很多
工作以照顾所有这些代码.
其中的一个子集是没有编译Python.使用C ++,即使您
代码是完全不可知论的,您必须编译Linux版本,一个
Win32(以及如今,甚至是64版)和地图版本.和
每次添加的汇编,您都会添加错误,断裂和
其他麻烦.
2)Python的编码样式.这是一个非常广泛的类别,很棒
主观.我喜欢空格编码.它确实使代码块
看起来像块.循环和IF-ELIF-ELSE块被明确定义,并且
它有助于维护,这只是使我的代码看起来很漂亮.
Python看起来也像英语.我对语言的熟悉
有些与此有关,但我可以阅读代码.我不必写
下数字,然后回顾代码,然后尝试解释
代码.它读起来像英语.
3)我想添加python的解释语言是有些作弊
再次地位,但值得重申,也是一个很好的例子
这个故事将说明:
对于我的一个课程,我们可以做任何我们想要的项目
(假设这是学校适当的东西).我决定编码
python中的地牢和龙3.5角色统计生成器.当日
对我的项目进行了评估,我意识到我的代码中有一个错误.因为
在一些时髦的指数切片中,数字被切断.谢谢
python被解释而不是编译,我能够纠正
网站上的错误,并介绍正确运行的代码.
4)广泛的图书馆. Python有一个庞大而活跃的社区发展
图书馆几乎可以蚂蚁. Pygame,Scipy,
WXPYTHON,任何可以想像的任何类型的工具包.易于
获得这些工具有助于我花时间行使自己的创造力
和编码技巧,而不是花时间尝试查找图书馆
做我需要的事情.
您的里程可能会有所不同,但对我来说,Python提供了可靠的,便携式的
我想要或需要的东西的平台.是的,对于重型的东西
像游戏,重型游戏,而不是俄罗斯方块或蛇,C或C ++ 莫里
管理器更可取,更可取.但对于
每天"我需要在15分钟内制造工具",Python的完美.
-----开始PGP签名-------------
版本:gnupg v1.4.9(mingw32)
评论:将gnupg与mozilla一起使用-http://enigmail.mozdev.org
ieyearecaayfakhli3oacgkqlmi5fndav9gthgcfxuhwbwnqlr ljtwsdhizukqk2
bnaaoke7+gyci3pe9xlop3u+uoxlritq
= BFI0
-----结束PGP签名-----
# 回答2


kurda yon Python比C ++更有趣;-)
无论如何无需使用一个或另一个...我已经完成了项目
我们已经将Python嵌入了一个大型的C ++程序中,以简化
用真实语言对应用程序的脚本性.我也完成了
反向 - 嵌入C/C ++中的Python.而且真的很容易
选项有CTYPE.
给定一个空白的画布,我会从python开始,然后添加一点C/C ++
如果其中的某些部分运行太慢.如果有现有的
C/C ++库,然后我将使用CTYPE与它们接口.
我认为我曾经想启动另一个大型C ++应用程序 - 去过那里,
这样做了,得到了(心理)疤痕来证明这一点;-)
当然,我所有的谦虚意见!
- -
Nick Craig-Wood
# 回答3


库尔达Yon写道:
嗯,用每种语言编码一个微不足道的程序,您将拥有一个完美的好
主意.
- -
在上下文中查看此消息:http://www.nabble.com/c%2b%2b-or-pyt...p18176708.html
从Nabble.com上的Python -Python list邮件列表存档发送.
# 回答4


在2008年6月27日星期五15:22:26 -0700,库尔达·杨写道:
Python在错误上的自动追溯促进了调试非常好.
python没有太多的流浪指针参考或脱离
界限阵列参考(您几乎必须使用写得不好
扩展模块以获取它们),进行开发和维护
Python代码在人类时代便宜得多.
Python有垃圾收集,这意味着您不必担心太多
关于内存泄漏.
Python不仅是另一种卷曲的括号语言 - 它的读物更像是
您会在白板上看到抄写的伪代码,也许比其他任何
语.
python是一种非常有活力的语言 - 因此,有些事情会在C ++中
为您捕获Python不会的错误.但是,这也意味着
您不会花时间在Python中一遍又一遍地声明变量.还,
诸如传递方法作为函数参数之类的事情是不明智的
(由于谨慎的类型系统,需要在Java中进行额外的语法 - 而不是
确定有关C ++). Python的动态性也意味着您不需要
笨拙的机制,例如模板或必须使用继承才能获得
类型参数.
在Python中,一切都是一个对象.并非一切都有方法,但是
一切都可以粘在变量 - 模块,代码片中,
任何.只需尝试将任意标头文件的扩展放入一个
C ++中的变量.
# 回答5


Dan Stromberg :
C ++具有函数点 RS和函子,因此这不是真正的
C ++的问题.
- -
自由始终是持不同政见者的自由.
(罗莎·卢森堡)
# 回答6


在阳光下,2008年6月29日11:20:45 +0200,塞巴斯蒂安\" Lunar \" Wiesner写道:
C ++具有功能指针和函子,因此这不是一个真正的
C ++的问题.
基于http://en.wikipedia.org/wiki/
function_object#funchors_in_c_and_c.2b.2b看起来没有
语言核心中的特殊语法,但需要通过
对象好像它是一个函数(例如)确实需要添加一些
需要此类处理的每个对象的额外代码行.
# 回答7


在6月28日,12:22*上午,库尔达yon 早在2002年,我们在C ++之间做出了艰难的决定(建立良好
在这里)java(那时还不那么成熟)和python(完全是我的
公司).
任务是完成运行的控制软件的完整重写
我们的全自动托盘输送机系统.
该体系结构是三层的;主机(不是我们的系统),服务
gui(com uppards and dowerswards,加上支持
植物)和PLC最近的ELMEC.
我们决定去Python,因为我们总是会在ANSI C上退缩
如果出现绩效问题.
今天我们不后悔!
自从手持式手持以来,我们已经扩展了架构
由于缺乏适当的Python可能性,因此使用Java编程(在
时间).
我们为PLC代码提供了进一步的编程代码.
等等..:o)
当然,C ++本可以使用,但不在努力(少)我们现在
经验.
MU 2美分//玛丽亚
# 回答8


2008/6/29 Dan Stromberg :
C ++具有功能指针和函子,因此这不是一个真正的
C ++的问题.

基于http://en.wikipedia.org/wiki/
function_object#funchors_in_c_and_c.2b.2b看起来没有
语言核心中的特殊语法,但需要通过
对象好像它是一个函数(例如)确实需要添加一些
需要此类处理的每个对象的额外代码行.
这是一个稍有不同的情况 - 在C ++中创建函子更多
等同于使Python对象可召唤.两者都要求您添加
该类的特殊命名方法 - " __call__"或" operator()".
foo类成员函数栏的指针的语法是
"&foo :: bar",这与将其他任何东西指向其他任何东西一样
C ++.
标准C ++库还具有将指针指向一个的功能
成员功能并返回可以用于调用的函数
成员在实例上函数. (是否将指针作为一个
未结合的方法与期望参考的功能正确地工作
对于函子而言,依赖编译器,因此在便携式中不建议使用
代码),因此很容易通过C ++中的未结合方法 - 唯一
额外的代码行是#include .缺点是
成员函数指针的表现主要像函子一样,除非它们
不,所以有mo 重新认知负荷. Python的更容易是通过绑定的方法作为一个 一流函数 - 您只需使用" instance.method_name" - 但是在 C ++没有采用对象的标准库功能 参考和成员函数指针,并返回函数绑定到 那个成员. 在没有自动内存管理的情况下,您有 为了确保实例生命周期超过函数生命周期,并且 标准库避免做出有关生命周期的设计决策 它不会创建的对象.

标签: python

添加新评论