python 释放内存_学了4年C++后,我转向了Python
通常,程序員會認為 Python 編碼比較簡單,即便是在校學生也可輕松入門,這是大多數轉型 Python 程序員的最初想法。當然,Python 程序員現在的社會需求更大,薪資也相對更高一些。隨著 C++ 的日益增負,不少程序員都抱怨“希望 C++ 別再加了,實在是學不動了”,本文講述了一名具備四年工作經驗的 C++ 程序員轉行學習 Python 的心路歷程。
1 由深入淺最近幾年,從 C++ 轉型 Python 的程序員不在少數,畢竟由深入淺易,由淺入深難。學習 C ++ 感覺就像在海里深潛,潛的越深,景色越美,但需要付出更多時間和精力。總的來說,最終所覆蓋的距離并不會很大。Python 有點像浮潛,很容易觸碰,如果可以持續投入學習,很快就可以有所領悟。從這兒可以清楚看出,每種語言都應該在正確的地點和時間使用。
2 C ++ 語法更嚴格,Python 庫更豐富C ++ 語法更加嚴格,一旦出現編碼錯誤,基本會連帶發生很嚴重的后果。C++ 程序員通常需要深入了解計算機、編譯器和編程語言語法。當深入了解時,我們可以看到并被一些事物所吸引,比如編譯過程和內存管理。
作為 C ++ 程序員,大部分人往往更關心語法調整和場景用例,注重內存分配及釋放。程序更加獨立,編程人員往往清楚知道代碼會發生什么,同時認為其他人寫的代碼不太可靠,更容易出錯,并且可能會破壞內存用量。
C++ 程序員的主要日常工具是 Vim,有許多用于編寫代碼的插件,用于調試的 GDB 和用于分析內存使用和錯誤的 Valgrind,可能用 g++ 編譯并編寫 Makefile。此時,作者并不認為 IDE 會讓其受益,反而非常依賴編譯器來查找錯誤類型。
3 轉型 Python,要學會放手轉換 Python 需要學習的第一件事就是放手,程序員不必再了解底層發生了什么,內存是否被分配或釋放,這些都沒有關系。因為 Python 可以使用其他人編寫的代碼,這些代碼被打包成庫,程序員可直接在代碼中調用,可以節省時間并幫助更快地編寫代碼。這并不意味著編碼速度變慢,或者依賴未維護和無功能的庫,但重點肯定是不同的。
當作者開始用 Python 編寫代碼時,首先用 Python 編寫了 C ++ 代碼,雖然這也可以生成最終運行效果,但并沒有從 Python 語言中獲益。只有以更“Pythonic”的方式編寫并使用庫以及更高級的概念(如生成器,裝飾器和上下文)時,Python 編碼才得到改進。
作為一名 Python 開發人員,傾向于首先考慮能解決手頭問題的庫。Python 擁有豐富的庫生態系統和支持社區,幾乎可以完成任何事情。目前比較常用的庫是,NumPy 用于數值計算,OpenCV 用于計算機視覺,json 用于讀取 json 文件,SciPy 用于科學計算,sqlite3 用于數據庫。
目前,作者使用的日常工具是帶有 IdeaVim 插件的 PyCharm(一個 IDE),一個功能強大的調試器,比默認的 Python 調試器 pdb 更友好,也會使用 pip 來安裝需要的庫。除非真的需要,否則不會再監視內存使用情況。實用技巧
如果是 C ++ 開發人員,并且考慮開始使用 Python 編寫代碼,以下是作者的建議:
擺脫舊習慣。停止使用 C ++ 編譯器作為調試器,不過度優化內存使用情況。避免編寫類似 C ++ 的代碼,盡量不依賴類型。
培養新習慣。開始使用庫寫 Pythonic 代碼(但不要過度)。
保持可讀性。使用更復雜的概念,例如生成器、裝飾器、上下文等,可以試試 PyCharm。
使用 C ++ 和 Python 公共庫。某些 C ++ 庫(如 OpenCV 和 QT)具有 Python 接口,程序員很容易在 Python 中使用相同的庫,而不是從頭開始學習新庫。
不要忘記二者的本質區別。Python 有時太慢或不適合任務,這就到了運用 C ++ 知識的時候了。在 Python 中使用 C ++ 代碼的方法有很多,比如 SIP、ctypes 等。
當轉換到一種新的編程語言,尤其是與個人習慣完全不同的語言時,需要花費大量時間學習、挖掘、發現,最重要的是要明白不僅語言應該改變,編碼風格和工作方法也要改變,因此需要提前做好大量準備工作。
英文原文https://medium.freecodecamp.org/how-i-went-from-c-to-python-a-conceptual-change-8bf29d059428
點個好看少個 bug ?
總結
以上是生活随笔為你收集整理的python 释放内存_学了4年C++后,我转向了Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买第三便宜帽子
- 下一篇: C++根据输入日期YYYY-MM-DD判