pycharm 對代碼做靜態(tài)檢查操作
對于下面這種情況,java c這些提前編譯的語言,不給你運(yùn)行機(jī)會就立馬報錯了,但對于動態(tài)語言運(yùn)行之后才能報錯,用運(yùn)行的方法來檢查代碼錯誤是在是太坑了,這是py對比靜態(tài)語言的巨大劣勢,尤其是代碼文件多行數(shù)較大時候,劣勢有些明顯。
#coding=utf8 import time class A(object): def __init__(self): self.name = 'xiaomin' def fun(): for i in range(100): time.sleep(10) print i if i == 70: print bbbb fun() time.sleep(600) print A().age
這段代碼有錯誤,第13行本地和全局中都找不到bbbb。
第17行A類的實(shí)例沒有age這個屬性,強(qiáng)行使用會在運(yùn)行時候報錯。
但這個報錯有很大缺陷,第13行報錯需要運(yùn)行后等到第700秒才報錯,如果不調(diào)用fun函數(shù),第17行需要等600秒才報錯,這里的sleep用來泛指運(yùn)行其他代碼功能消耗的時間。
尤其是代碼文件多,嵌套判斷多,不能很快的報出一些明顯錯誤,實(shí)在是不太好,如果是不小一在編輯器哪一段按了幾個鍵盤多打了幾個字母,還要等運(yùn)行才報錯,那是十分坑的。這可能是國內(nèi)大的項(xiàng)目,用py語言很少的原因之一。
還好,有一些工具flake8,pylint檢查,如果使用pycharm,那就用自帶的inspect code功能來檢查。

最好設(shè)置一個自定義按鍵。

這樣就能找到這個bbbb和age屬性錯誤了。其余的是pep8語法,2to3的過時寫法檢查
這樣的好處是不需要等運(yùn)行10分鐘后才發(fā)現(xiàn)錯誤,而是很快就發(fā)現(xiàn)錯誤,減少一些測試時間,不然老是改來改去運(yùn)行,很糟糕。
反對極端面向過程編程思維方式,喜歡面向?qū)ο蠛驮O(shè)計(jì)模式的解讀,喜歡對比極端面向過程編程和oop編程消耗代碼代碼行數(shù)的區(qū)別和原因。致力于使用oop和36種設(shè)計(jì)模式寫出最高可復(fù)用的框架級代碼和使用最少的代碼行數(shù)完成任務(wù),致力于使用oop和設(shè)計(jì)模式來使部分代碼減少90%行,使絕大部分py文件最低減少50%-80%行的寫法。
以上這篇pycharm 對代碼做靜態(tài)檢查操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中collections.Counter()的具體使用
本文主要介紹了Python中collections.Counter()的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
使用Python實(shí)現(xiàn)全能手機(jī)虛擬鍵盤的示例代碼
在數(shù)字化辦公時代,你是否遇到過這樣的場景:會議室投影電腦突然鍵盤失靈、躺在沙發(fā)上想遠(yuǎn)程控制書房電腦、或者需要給長輩遠(yuǎn)程協(xié)助操作?今天我要分享的Python全棧項(xiàng)目,只需30行核心代碼就能讓手機(jī)變身全能虛擬鍵盤!本文將深度解析技術(shù)實(shí)現(xiàn),并附完整可運(yùn)行代碼2025-04-04
python第三方包安裝路徑site-packages下.libs作用詳解
這篇文章主要為大家介紹了python?第三方包安裝路徑?site-packages?下面的以?.libs?結(jié)尾的路徑作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
pytorch中實(shí)現(xiàn)彩色圖像(三通道)轉(zhuǎn)灰度圖像(單通道)
這篇文章主要介紹了pytorch中實(shí)現(xiàn)彩色圖像(三通道)轉(zhuǎn)灰度圖像(單通道),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)
Motor是一個異步mongodb driver,支持異步讀寫mongodb。它通常用在基于Tornado的異步web服務(wù)器中。這篇文章主要介紹了基于python3.7利用Motor來異步讀寫Mongodb提高效率,需要的朋友可以參考下2020-04-04

