pycharm 對代碼做靜態(tài)檢查操作
對于下面這種情況,java c這些提前編譯的語言,不給你運行機會就立馬報錯了,但對于動態(tài)語言運行之后才能報錯,用運行的方法來檢查代碼錯誤是在是太坑了,這是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類的實例沒有age這個屬性,強行使用會在運行時候報錯。
但這個報錯有很大缺陷,第13行報錯需要運行后等到第700秒才報錯,如果不調(diào)用fun函數(shù),第17行需要等600秒才報錯,這里的sleep用來泛指運行其他代碼功能消耗的時間。
尤其是代碼文件多,嵌套判斷多,不能很快的報出一些明顯錯誤,實在是不太好,如果是不小一在編輯器哪一段按了幾個鍵盤多打了幾個字母,還要等運行才報錯,那是十分坑的。這可能是國內(nèi)大的項目,用py語言很少的原因之一。
還好,有一些工具flake8,pylint檢查,如果使用pycharm,那就用自帶的inspect code功能來檢查。
最好設置一個自定義按鍵。
這樣就能找到這個bbbb和age屬性錯誤了。其余的是pep8語法,2to3的過時寫法檢查
這樣的好處是不需要等運行10分鐘后才發(fā)現(xiàn)錯誤,而是很快就發(fā)現(xiàn)錯誤,減少一些測試時間,不然老是改來改去運行,很糟糕。
反對極端面向過程編程思維方式,喜歡面向?qū)ο蠛驮O計模式的解讀,喜歡對比極端面向過程編程和oop編程消耗代碼代碼行數(shù)的區(qū)別和原因。致力于使用oop和36種設計模式寫出最高可復用的框架級代碼和使用最少的代碼行數(shù)完成任務,致力于使用oop和設計模式來使部分代碼減少90%行,使絕大部分py文件最低減少50%-80%行的寫法。
以上這篇pycharm 對代碼做靜態(tài)檢查操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文搞懂Python中Pandas數(shù)據(jù)合并
pandas是基于NumPy的一種工具,該工具是為了解決數(shù)據(jù)分析任務而創(chuàng)建的。Pandas納入了大量庫和一些標準的數(shù)據(jù)模型,提供了高效操作大型數(shù)據(jù)集的工具。pandas提供大量快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會發(fā)現(xiàn),它是使Python強大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一2021-11-11python使用selenium操作瀏覽器的實現(xiàn)示例
Selenium是一個模擬瀏覽器瀏覽網(wǎng)頁的工具,主要用于測試網(wǎng)站的自動化測試工具,本文主要介紹了python使用selenium操作瀏覽器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-01-01Python實現(xiàn)的選擇排序算法原理與用法實例分析
這篇文章主要介紹了Python實現(xiàn)的選擇排序算法,簡單描述了選擇排序的原理,并結(jié)合實例形式分析了Python實現(xiàn)與應用選擇排序的具體操作技巧,需要的朋友可以參考下2017-11-11