当我从C++转向Python时,我已经是一名拥有四年全职工作经验的软件开发人员。我的工作主要是在Linux上使用C++进行编程,而且我是QT库的重度用户。但是当我第一次开始使用Python时,我的写作很糟糕。从C++过渡到Python已经快三年了,我觉得是时候总结一下这段时间的经验了。回想起来,我改变的不仅仅是我使用的编程语言,还有我的工作方式和我对代码的思考方式。C++和Python的区别这里不再赘述,网上可以找到很多相关资料。这只是我的个人经历。从C++跳到PythonC++是潜水,Python是潜水C++感觉就像一头扎进幻想和神秘的海洋——它是如此美丽,但它需要更多的学习和训练。一般来说,你游过的水面不会很大。而Python有点像潜水——把头伸进水里就能看到它的美,但是不要太深,在浅水里游来游去,可以轻松游过一大片区域。两种语言如此不同,所以适用的场景也不同。深入研究C++并努力成为幸存者C++更严格,当你犯错时会更严厉地惩罚你。从未收到分段错误的编码会话不是有效的编码会话。因此,您需要更多地了解计算机、编译器和语言。如果再深入一些,就会被其中包含的美所折服,比如编译过程、内存管理等。作为一名C++程序员,我更关心语法调整和奇怪的示例。我总是知道如何分配和释放内存。我编写的程序更加独立,因为我想知道我的代码内部发生了什么。主要是觉得别人写的代码不太可靠,比较容易出错,可能会增加内存占用。Vim、GDB和Valgrind是我的主要日常工具*。*Vim有很多用于编写代码的插件,用于调试的GDB和用于分析我的内存使用情况和错误的Valgrind。我用g++编译并自己编写Makefile。那时,我认为IDE毫无用处,会减慢我的速度并剥夺我对代码的访问权限。回想起来,我非常依赖编译器来查找类型错误。资料来源:Unsplash;上传者:JakobBoman初尝Python。但没关系。我们还鼓励您使用其他人的代码打包为库,这可以帮助您节省时间并提高编码速度。这并不意味着您需要编写像蜗牛一样缓慢且依赖于未维护和非功能性库的代码,关键是非常不同。当我第一次开始用Python编码时,我用Python编写了C++。这也有效,但我没有从语言中获得任何东西。当我开始以更Pythonic的风格编写代码并使用库和更高级的概念(如生成器、装饰器和上下文)时,我的编程技能才得到提高。作为一名Python开发人员,我倾向于首先寻找能够解决手头问题的库。Python拥有丰富的库生态系统和社区支持。有许多具有特殊用途的图书馆。这些是我经常使用的库:NumPy(数值计算)、OpenCV(计算机视觉)、json(读取json文件)、SciPy(科学计算)、sqlite3(数据库)。我每天使用的工具是带有IdeaVim插件的PyCharm(这是一个IDE)。我开始使用这个工具是因为它是一个功能强大的调试器,比默认的Python调试器pdb友好得多。我还使用pip安装所需的库。除非必要,否则我通常不再监视内存使用情况。资料来源:Unsplash;上传者:Channey一些实用技巧如果您是C++开发人员并考虑开始编写Python,这里是我的一些建议:改掉旧习惯:停止使用C++编译器作为调试器。不再过度优化内存使用。避免编写C++风格的代码。无论如何,不??要再依赖类型了。养成新习惯:开始使用图书馆。编写Pythonic代码(但不要为了写作而编写),并保持代码的可读性。尝试使用一些更复杂的概念,如生成器、装饰器、上下文。试试PyCharm。使用C++和Python共享库:一些C++库(例如OpenCV、QT)具有Python接口。在Python中使用相同的库比从头开始学习一个新库更容易。不忘初心:有时候Python只是太慢或者不适合你的任务,C++经验就派上用场了。有许多方法(SIP、ctypes等)允许您在Python中使用C++代码。结论不管别人怎么说,切换到另一种编程语言并不容易,尤其是切换到一种与您使用过的语言完全不同的语言。你花时间去学习、去挖掘、去发现。但最重要的是,您要改变的不仅仅是语言,还有编码风格和工作方法。【本文为栏目组织《机器之心》微信公众号《机器之心(id:almosthuman2014)》原文翻译】点击此处查看作者更多好文
