每周分享五個 PyCharm 使用技巧(三)
大家好,這是本系列 PyCharm 的高效使用技巧的第三篇。按照慣例,本次還是分享 5 個。
本系列前兩篇如下,若還沒看的,你可以點擊查閱
Mingle Wong:受用一生的高效 PyCharm 使用技巧(一)

11. 一鍵進行代碼性能分析
在 Python 中有許多模塊可以幫助你分析並找出你的項目中哪裡出現了性能問題。
比如,常用的模塊有 cProfile,在某些框架中,也內置了中間件幫助你進行性能分析,比如 Django ,WSGI。
做為Python 的第一 IDE, PyCharm 本身就支持了這項功能。而且使用非常方便,小白。
假設現在要分析如下這段代碼的性能損耗情況,找出到底哪個函數耗時最多
import time
def fun1():
time.sleep(1)
def fun2():
time.sleep(1)
def fun3():
time.sleep(2)
def fun4():
time.sleep(1)
def fun5():
time.sleep(1)
fun4()
fun1()
fun2()
fun3()
fun5()
點擊 Run -> Profile 程序 ,即可進行性能分析。

運行完畢後,會自動跳出一個性能統計界面。

性能統計界面由Name、Call Count、Time(ms)、Own Time(ms) ,4列組成一個表格,見下圖。
- 表頭Name顯示被調用的模塊或者函數;Call Count顯示被調用的次數;Time(ms)顯示運行時間和時間百分比,時間單位為毫秒(ms)。
- 點擊表頭上的小三角可以升序或降序排列表格。
- 在Name這一個列中雙擊某一行可以跳轉到對應的代碼。
- 以fun4這一行舉例:fun4被調用了一次,運行時間為1000ms,占整個運行時間的16.7%
點擊 Call Graph(調用關係圖)界面直觀展示了各函數直接的調用關係、運行時間和時間百分比,見下圖。

右上角的4個按鈕表示放大、縮小、真實大小、合適大小;
- 箭頭表示調用關係,由調用者指向被調用者;
- 矩形的左上角顯示模塊或者函數的名稱,右上角顯示被調用的次數;
- 矩形中間顯示運行時間和時間百分比;
- 矩形的顏色表示運行時間或者時間百分比大小的趨勢:紅色 > 黃綠色 > 綠色,由圖可以看出fun3的矩形為黃綠色,fun1為綠色,所有fun3運行時間比fun1長。
- 從圖中可以看出Test.py直接調用了fun3、fun1、fun2和fun5函數;fun5函數直接調用了fun4函數;fun1、fun2、fun3、fun4和fun5都直接調用了print以及sleep函數;整個測試代碼運行的總時間為6006ms,其中fun3的運行時間為1999ms,所佔的時間百分比為33.3%,也就是 1999ms / 6006ms = 33.3%。
12. 使用Git做版本控制
按照如下提示點擊 Git 倉庫配置

接著輸入倉庫地址

點擊 Test,測試連通性,會要求輸入密碼

若一切順利,則會看到如下界面

測試連接成功後,點擊 Clone 就可以克隆下來了。
對於以前使用 Git 命令來管理的,現在可以直接使用 PyCharm 的菜單欄來操作,這些功能已經可以滿足大多數人的日常需求了,應該是夠用了。

13. Tab輕鬆轉空格
在團隊協作中,你難免會動到別人編輯的文件,有的人喜歡做tab做縮進,有的人喜歡用四個空格做縮進。
但是在同一個Python文件模塊里,tab 和 四個空格縮進兩種風格是不能共存的。這就需要你按照該文件原來的縮進風格來進行編碼,在 Pycharm 里,可以設置自動檢測原文件的縮進風格來決定當你使用tab鍵縮進的時候,是TAB還是四個空格。
在圖示位置打勾即可開啟自動檢測。

上面是對一個舊的 Python 模塊進行修改時,如何決定當前編輯的縮進方式。
而對於新建模塊,默認的縮進方式,是如何確定的?
如下圖,若在 Use tab character
打上勾,則你新建一個 Python 後,就會使用 TAB 進行縮進,反之,則使用四個空格進行縮進。

14. 一次註冊,永久激活
PyCharm 有分兩個版本,一個是社區版(免費功能有限),一個是專業版(有一些增強功能),詳細差異你可以參考這個圖,一般來說,社區版用作學慣用途是沒有問題的。

如果需要使用專業版,網上也有一些註冊伺服器使用,非常方便,缺點是過一段時間,可能就會失效。這裡有一種一勞永逸的方法,但可能僅對早期的 PyCharm 版本有效,可以實現永久激活(到 2099 / 2100年,一定意義上是永久了吧)。
經過我個人親測,以下破解jar包,Windows 中在 2017.1.5 版本中有效,Mac OS 在2018.2.4 版本中有效。如果你在自己的版本中嘗試無效,可以嘗試切換至我的版本。
以下將分別以 Mac OS 和 Windows兩個主流系統做演示。
第一步:
下載jar包: 此jar包的目的就是讓截獲截止時間並騙過 PyCharm;
Windows 點此下載 密碼:lvyv
Mac OS 點此下載,密碼:5o4s
第二步:
若是 Windows 系統,請找到並進入你的 PyCharm 安裝啟動目錄(以我的為例):E:Program FilesJetBrainsPyCharm 2017.1.5in
將第一步下載的 jar 包放入這個目錄,並打開如下兩個以 vmoptions
後綴結尾的文件:

添加如下這一行(請根據你的實際安裝目錄自行調整)

若是 Mac OS 系統,請找到並進入你的 Pycharm 安裝啟動目錄(以我的為例)
將第一步下載的 jar 包放入這個目錄

並打開如下一個以 vmoptions
後綴結尾的文件:

第三步:
隨意填寫個激活碼,如果此前已經有寫過,這步可直接跳過到第四步,如果沒有寫過,你就填這個吧。
點擊:Help -> Register -> Activation Code
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9
第四步:
若是 Windows 系統,重啟 PyCharm 後,查看激活信息:Help -> About

如果是 Mac OS 系統,重啟 PyCharm 後,查看激活信息:PyCharm -> About PyCharm

另外,以上僅做交流和個人學習使用,請勿商用,有能力的朋友還是希望多支持正版!
15. 源碼文檔,快速預覽
Ctrl + 滑鼠左鍵 (Mac 上是:Command + 滑鼠左鍵),可以實現函數跳轉查看源碼, 這幾乎是每一個 PyCharmer 都會的一個慣用技巧。
這裡再另外介紹兩個類似的小技巧,快速 查看函數文檔
和 預覽源代碼
。
在函數的開頭處,使用三個引號 "
包含的內容,叫做函數文檔 (DocString)。
在編寫代碼時,順便寫好函數的介面文檔,是一個很好的編碼習慣。它介紹了該函數的參數類型及說明,返回值類型及範例,寫得好一點的還會寫出 幾個簡單的 Example Usage 有助於理解使用。在這一點上,Flask 可以說做得相當好。這邊隨便截一個 Werkzeug 的例子。

假如我們在使用這個類的時候,忘記了這個用法,可以按住 Ctrl + q(Mac暫時未找到對應快捷鍵),在當前頁面就可以快速預覽 LocalStack 的介面文檔。

同樣的,如果你對這個類或者函數的代碼邏輯感興趣,也可以使用快速預覽的方式在當前頁面展示源代碼。快捷鍵是:Ctrl + shift + i (Mac:Command + shift + i)。效果如下

如果 PyCharm 檢測到的同名函數有多個,可以點這裡進行選擇查看

這兩個快捷鍵比起使用 Ctrl + 滑鼠左鍵 跳進源代碼來說,更加方便,,就像微信小程序一樣,用完即焚,不會新產生一個標籤頁,也不需要來回跳轉頁面。
好了,本周的分享的高效技巧就是這 5 個,你學會了嗎?
下周末還會更新 5 個,敬請期待,為防走丟,請及時關注本專欄更新!!
推薦閱讀:
※PyCharm遠程調試代碼
※Anaconda+PyCharm的安裝與配置
※如何更改pycharm的Python版本
※pycharm 下的全局搜索如何取消,被困擾好久了,求大神解救?
※Use 3rd-party IDE to edit GHPython code
TAG:PyCharm使用技巧 | PyCharm | Python |