亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Python中的三個秘密武器

發布時間:2020-07-03 15:18:22 來源:億速云 閱讀:254 作者:清晨 欄目:編程語言

這篇文章主要介紹關于Python中的三個秘密武器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

秘密武器#1:快速編碼,少用Kite谷歌

大多數代碼編輯器都具有類似這樣的自動填充功能,...使用某種語言(庫)文檔來表明函數名和參數:

關于Python中的三個秘密武器

這不難,但如果編輯器可以瀏覽幾年的GitHub數據,并且不僅僅能自動填充函數名稱,還能完成整行代碼呢?這僅是第一個使用Kite的理由。

原因 1:代碼行填充

Kite訪問代碼庫和各個變量、常用的在線參數名稱以及文檔后,會輸出優質的語境建議:

關于Python中的三個秘密武器

上圖示例展示了Kite如何能預測編碼者需要使用的變量,即使它們一般被命名為(如b),或更普遍的名字(如x或y)。

Kite創始人兼首席執行官Adam Smith說:“我們在Github 上已經用了50多年的時間來對所有代碼進行語義索引,構建統計類型推理,以及深度使用此語義信息的豐富統計模型。”

原因 2:在本地私密運行

最重要的是,它在本地運行,因此可以快速獲得提示,離線也能工作,并且代碼不會發送到云端。

對于網絡情況異常和在閉信源代碼庫工作的人來說,這一點非常重要。

原因 3:文檔編程助手

關于Python中的三個秘密武器

如果你從來沒聽過"RTFM"這個詞,那可能因為沒有在第一代開發者身邊工作過。

向高級開發人員討教是很有必要的,甚至去StackOverflow查找答案之前閱讀文檔。Kite Copilot讓文檔變得十分簡單,其與編輯器同時運行,實時顯示文檔中光標掠過的任何對象/函數等。

結果

筆者使用Kite多年,它改進得也越來越好。其擁有超過1,700萬美元的投資,不會輕易倒閉,而且它的工具是完全免費的。你只需要給編輯器下載Kite插件,或下載copilot(編碼助手),就能安裝插件。

關于Python中的三個秘密武器

秘密武器#2:用Mypy檢查代碼

編碼Python 是動態的,簡單解釋就是:編碼者可以隨時將任何變量變為任何數據類型(字符串、整數等)。

# These two variable types aredeclared the exact same way
# Python figures out the data type on it's own, dynamically# string
var_name = "string here"# integer
var_name = 1234

相對的是靜態類型的語言,其中它的變量必須有一個特定的數據類型,并且始終遵循它。

# Many languages require the datatype to be declared too# string
str var_name = "string here"# integer
int var_name = 1234

動態編碼的優點/缺點

動態編碼的優點是,你可以偷懶,并且能減少亂碼。但它缺點很多且不小:

· 通常在開發周期后期會出現錯誤

· 由于Python不斷計算類型,編碼效果會降低

· 傳遞代碼更不穩定,因為其他人可能不知道其中的變量是哪些或可能成為哪些數據類型

· 函數會更不穩定,因為它們的輸入和輸出可以在沒有警告的情況下更改數據類型

關于Python中的三個秘密武器

Python 中的靜態鍵入

打開Mypy,這是一個免費的Python模塊,讓你能在Python 內部靜態編碼。發出pip install mypy指令后, 下面就是其使用示例:

# Declaring a function using normaldynamic typing, without mypy
def iter_primes():
# code here# Declaring the samefunction with mypy static typing
from typing import Iteratordef iter_primes() -> Iterator[int]:
# code here

利用mypy 示例,能指定函數返還整數的迭代器。這種簡單變化通過強制實施一致輸出,使函數更具有預測性。

與僅使用文檔不同,其他開發人員只需查看輸出的將是什么數據類型,如果不符合該定義,則代碼出錯。

結果

列出靜態類型以幫你減輕將來痛苦的所有方法有難度,但mypy文檔具有出色的解答常見問題的能力,優缺點都不少。

如果你在一個把穩定性放在第一位的代碼生產庫工作,一定要試試myby。

關于Python中的三個秘密武器

秘密武器#3:用Sonarlint快速查找錯誤,編寫更簡單的函數

現在每個編輯器都有某種類型的錯誤檢查或內置的"linter",可以用來查看代碼,通常無需運行,并能預測可能存在的錯誤。這就是靜態代碼分析。

關于Python中的三個秘密武器

動態代碼分析實際上嘗試運行/編譯代碼的某些部分,以查看其是否正常工作,但它會自動在后臺運行。它不是猜測,它事實上知道代碼是否會出錯,以及確切的錯誤是什么。

SonarLint是動態代碼分析中最好的,有超多優點:

已注釋或未命名的代碼

對于代碼庫里滿滿的輸出定義、已注釋代碼,以及未使用的函數,筆者十分愧疚。但正是如此,才會時刻警醒,留下深刻印象,方便查找。

不執行命令代碼

與未命名的代碼略有不同,不執行命令代碼將會在編碼者創建不可能評估時發出預警。這十分有必要,否則會導致進行幾個小時的調試,這是筆者最喜歡的預警之一。

示例:

a = Noneif a == None or not a or a:
this_will_always_get_called()
else:
# sonarlint will warn you about thisline never being executed
this_will_never_get_called()

安全風險

代碼庫中的巨大數據庫將不斷實時更新安全風險,能警告使用者所面臨的任何已知漏洞風險。

安全風險問題是小概率事件,基本不可能給我們留下印象。因此,每個人都應該行動起來持續追蹤。SonarLint是一個偉大的開端。

關于Python中的三個秘密武器

認知復雜性

這個話題十分有趣,筆者可以針對它寫一篇完整的文章。

簡單解釋就是,有人創建了一個數學公式,這個公式可以對代碼的閱讀/理解難易程度進行評分。

它非常有用,還易于理解。每次SonarLint要求編碼者"降低認知復雜性"時,它都會對編碼者的不規范操作簡單解釋,比如"無法定義,嵌套異常"。

以上是關于Python中的三個秘密武器的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝坻区| 定陶县| 鹿邑县| 旌德县| 仁布县| 壤塘县| 新丰县| 宜州市| 禹城市| 饶河县| 巴青县| 江陵县| 视频| 揭阳市| 咸丰县| 抚宁县| 江安县| 柏乡县| 天全县| 天峻县| 芮城县| 四平市| 潜山县| 郎溪县| 东海县| 肇东市| 汽车| 耒阳市| 洛阳市| 扶绥县| 滨州市| 莆田市| 云和县| 图们市| 潮州市| 德州市| 外汇| 疏附县| 遂平县| 漠河县| 眉山市|