欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

3種適用于Python的瘋狂秘密武器及原因解析

 更新時(shí)間:2020年04月29日 10:01:06   作者:聞數(shù)起舞  
這篇文章主要介紹了3種適用于Python的瘋狂秘密武器,本文給大家分享問題原因解析,通過(guò)實(shí)例代碼圖文的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

我不知道沒有他們我該如何生活

我編寫Python已有5年以上了,我的工具集通常變得越來(lái)越小,而不是越來(lái)越大。 許多工具不是必需的或無(wú)用的,而其中的一些只是簡(jiǎn)單地增加了。

這是我堅(jiān)持了很長(zhǎng)時(shí)間的三個(gè),與其他人不同,我只是越來(lái)越多地使用它們。

秘密武器#1:使用Kite可以更快地編寫代碼,減少Google編寫時(shí)間

大多數(shù)代碼編輯器具有自動(dòng)完成功能,看起來(lái)像這樣:

…使用語(yǔ)言(有時(shí)是庫(kù))文檔來(lái)建議函數(shù)名稱和參數(shù)之類的內(nèi)容。

當(dāng)然可以,但是如果您的編輯器可以瀏覽GitHub數(shù)據(jù)多年并自動(dòng)完成,不僅是函數(shù)名,還可以是整行代碼。

這只是使用Kite的三個(gè)理由中的第一個(gè)。

原因1:代碼行完成

風(fēng)箏會(huì)檢查您的代碼庫(kù)和變量,在線使用的常用參數(shù)名稱,文檔,然后提出如下超級(jí)上下文建議:

上面的示例展示了Kite如何預(yù)測(cè)您將在通用名稱(如b)或通用名稱(如x或y)中使用的變量。

…我們已經(jīng)花費(fèi)了大約50年的工程師工作時(shí)間,在Github上對(duì)所有代碼進(jìn)行語(yǔ)義索引,建立統(tǒng)計(jì)類型推斷,以及豐富的統(tǒng)計(jì)模型,這些模型可以非常深入地使用此語(yǔ)義信息。 — Kite創(chuàng)始人/首席執(zhí)行官Adam Smith

這是一個(gè)實(shí)時(shí)演示視頻,或者,如果您愿意,可以在沙盒中播放。

原因2:副駕駛進(jìn)行文檔編制

如果您從未聽說(shuō)過(guò)" RTFM",那么您可能還沒有犯過(guò)我的錯(cuò)誤。

無(wú)論如何,在給高級(jí)開發(fā)人員打電話或什至查看Stack Overflow答案之前,都應(yīng)始終閱讀文檔。

Kite Copilot使文檔愚蠢容易。 它與您的編輯器一起運(yùn)行,并實(shí)時(shí)顯示您用光標(biāo)突出顯示的任何對(duì)象/功能/等的文檔。

親愛的高級(jí)開發(fā)人員,我的第一份工作:對(duì)不起。 現(xiàn)在,我真的沒有借口不首先在文檔中尋找答案。

原因3:在本地私人運(yùn)行

它是在本地運(yùn)行的所有基礎(chǔ)之上,因此您可以獲得令人難以置信的快速建議,它可以脫機(jī)工作,并且您的代碼永遠(yuǎn)不會(huì)發(fā)送到云中。

對(duì)于互聯(lián)網(wǎng)連接較差的人和在封閉源代碼庫(kù)中工作的人們來(lái)說(shuō),這是非常重要的。

結(jié)果

我使用風(fēng)箏已有多年了,而且一直在不斷進(jìn)步。 憑借超過(guò)1700萬(wàn)美元的投資,這家公司無(wú)處不在,而且由于某些愚蠢的原因,該工具是完全免費(fèi)的。

您所要做的就是為您的編輯器下載Kite插件,或者下載副駕駛,它可以為您安裝插件。 去實(shí)現(xiàn)它(夢(mèng)想);去得到它(東西!

秘密武器2:使用Mypy穩(wěn)定您的代碼

Python是動(dòng)態(tài)類型的,一個(gè)過(guò)分簡(jiǎn)化的解釋是您可以隨時(shí)將任何變量設(shè)為任何數(shù)據(jù)類型(字符串,整數(shù)等)。

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

相反的是靜態(tài)類型化的語(yǔ)言,其中變量必須具有一種特定的數(shù)據(jù)類型,并且必須始終遵循該數(shù)據(jù)類型。

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

動(dòng)態(tài)類型的優(yōu)點(diǎn)/缺點(diǎn)

動(dòng)態(tài)鍵入的優(yōu)點(diǎn)是您在編寫時(shí)可以很懶惰,并且可以減少代碼混亂。

缺點(diǎn)很多,但也很大:

  • 在開發(fā)周期的后期,您通常會(huì)遇到錯(cuò)誤
  • 由于Python不斷找出類型,因此代碼的執(zhí)行效果更差
  • 函數(shù)不穩(wěn)定,因?yàn)槠漭斎牒洼敵隹梢愿臄?shù)據(jù)類型而不會(huì)發(fā)出警告
  • 交出代碼會(huì)更加不穩(wěn)定,因?yàn)槠渌丝赡懿恢滥淖兞渴腔蚩赡艹蔀槟姆N數(shù)據(jù)類型

Python中的靜態(tài)類型

輸入Mypy。 一個(gè)免費(fèi)的Python模塊,可讓您在Python內(nèi)部使用靜態(tài)類型。

點(diǎn)安裝mypy之后,下面僅是一個(gè)使用示例:

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

在mypy示例中,我們指定該函數(shù)返回一個(gè)整數(shù)迭代器。 通過(guò)執(zhí)行一致的輸出,此簡(jiǎn)單的更改使該功能更適應(yīng)未來(lái)的需求。

其他開發(fā)人員只需查看聲明即可查看輸出將是哪種數(shù)據(jù)類型,并且與僅使用文檔不同,如果不遵守該聲明,您的代碼將出錯(cuò)。

這是一個(gè)非常簡(jiǎn)單的示例,摘自此處的示例,如果仍然沒有意義,請(qǐng)檢查一下它們。

結(jié)果

很難列出靜態(tài)鍵入可以減輕您將來(lái)痛苦的所有方式,但是mypy文檔具有很好的常見問題解答,但有更多的利弊。

如果您在穩(wěn)定至關(guān)重要的生產(chǎn)代碼庫(kù)中工作,請(qǐng)絕對(duì)嘗試一下mypy。

秘密武器#3:使用Sonarlint更快地發(fā)現(xiàn)錯(cuò)誤并編寫更簡(jiǎn)單的函數(shù)

如今,每個(gè)編輯器都有某種類型的錯(cuò)誤檢查或內(nèi)置的" lint"。 它通常在不運(yùn)行代碼的情況下查看代碼,并嘗試猜測(cè)可能出了什么問題。 這稱為靜態(tài)代碼分析。

動(dòng)態(tài)代碼分析實(shí)際上會(huì)嘗試運(yùn)行/編譯部分代碼以查看其是否正常運(yùn)行,但會(huì)在后臺(tái)自動(dòng)執(zhí)行。 實(shí)際上,它無(wú)需猜測(cè),而是知道它是否可以工作以及確切的錯(cuò)誤是什么。

SonarLint處于最佳狀態(tài),是動(dòng)態(tài)代碼分析領(lǐng)域的佼佼者。 這些功能是我喜歡它的原因:

注釋或未調(diào)用的代碼

我對(duì)在整個(gè)代碼庫(kù)中留下打印語(yǔ)句,注釋掉的代碼以及未使用的函數(shù)感到內(nèi)gui。 這將警告我,使其難以忘記,并告訴我它在哪里,易于查找。

安全風(fēng)險(xiǎn)

實(shí)時(shí)將龐大的,不斷更新的安全風(fēng)險(xiǎn)數(shù)據(jù)庫(kù)扔到您的代碼庫(kù)中,警告您可能面臨的任何已知漏洞。

安全風(fēng)險(xiǎn)非常小眾,無(wú)法記住,因此每個(gè)人都應(yīng)該使用某種方法來(lái)跟蹤這些風(fēng)險(xiǎn)。 SonarLint是一個(gè)不錯(cuò)的起點(diǎn)。

永遠(yuǎn)不會(huì)執(zhí)行的代碼

與未調(diào)用的代碼略有不同,如果我創(chuàng)建的評(píng)估結(jié)果無(wú)法達(dá)到,這將警告我。 這些問題很難發(fā)現(xiàn),可能會(huì)導(dǎo)致數(shù)小時(shí)的調(diào)試,因此這是我最喜歡的警告之一。

這是一個(gè)例子:

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

認(rèn)知復(fù)雜性

我可以寫一個(gè)完整的帖子,這是一個(gè)非常有趣的話題,實(shí)際上,上面有一個(gè)完整的白皮書。

簡(jiǎn)單的解釋是,他們創(chuàng)建了一個(gè)數(shù)學(xué)公式,可以對(duì)代碼的閱讀/理解難度進(jìn)行評(píng)分。

它不僅非常有用,而且易于遵循。 每當(dāng)SonarLint要求我"降低認(rèn)知復(fù)雜性"時(shí),它都會(huì)附帶一個(gè)關(guān)于我違反的規(guī)則的簡(jiǎn)單說(shuō)明,例如"太多嵌套的if語(yǔ)句"。

結(jié)果

我發(fā)現(xiàn)這比基本的阻止和掉毛實(shí)踐有用,而且我相信這使我編寫了對(duì)人類友好的代碼。 順便說(shuō)一句,這是Pythonic!

SonarLint是免費(fèi)的,因此沒有理由不立即獲取它并將其附加到您的編輯器中。

結(jié)論

如果您在此處跳過(guò),則只是一個(gè)快速警告,除非您對(duì)這些功能有基本的了解,否則可能無(wú)法正確使用它們。

以下是這三種秘密武器的概述:

  • 使用Kite Copilot和編輯器插件更快地編寫Google內(nèi)容
  • 使用Mypy Python模塊穩(wěn)定代碼
  • 使用SonarLint編輯器插件更快地發(fā)現(xiàn)錯(cuò)誤并編寫更簡(jiǎn)單的函數(shù)

希望這些工具對(duì)您有好處,我本人也非常喜歡它們。 我敢肯定,盡管我錯(cuò)過(guò)了其他一些不可思議的資源,所以請(qǐng)務(wù)必分享您在評(píng)論中沒有的生活。

到此這篇關(guān)于3種適用于Python的瘋狂秘密武器的文章就介紹到這了,更多相關(guān)Python的瘋狂秘密武器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pythony運(yùn)維入門之Socket網(wǎng)絡(luò)編程詳解

    Pythony運(yùn)維入門之Socket網(wǎng)絡(luò)編程詳解

    這篇文章主要介紹了Pythony運(yùn)維入門之Socket網(wǎng)絡(luò)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python中計(jì)算圓周率的方法匯總(方法合集)

    Python中計(jì)算圓周率的方法匯總(方法合集)

    這篇文章主要介紹了Python中計(jì)算圓周率的方法匯總(方法合集),包括使用math庫(kù)中的pi常量,使用級(jí)數(shù)展開公式計(jì)算π,本文給大家列舉多種方法幫助大家學(xué)習(xí),需要的朋友可以參考下
    2022-06-06
  • 基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼

    基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼

    這篇文章主要介紹了基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python中Tkinter組件Listbox的具體使用

    Python中Tkinter組件Listbox的具體使用

    本文主要介紹了Python中Tkinter組件Listbox的具體使用,Listbox組件用于顯示一個(gè)選擇列表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python中的ConfigParser模塊使用詳解

    Python中的ConfigParser模塊使用詳解

    這篇文章主要介紹了Python中的ConfigParser模塊的使用,ConfigParser模塊主要被用來(lái)讀寫配置模塊,需要的朋友可以參考下
    2015-05-05
  • python密碼學(xué)各種加密模塊教程

    python密碼學(xué)各種加密模塊教程

    這篇文章主要為大家介紹了python密碼學(xué)各種加密模塊教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Django框架教程之正則表達(dá)式URL誤區(qū)詳解

    Django框架教程之正則表達(dá)式URL誤區(qū)詳解

    正則表達(dá)式對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Django框架教程之正則表達(dá)式URL誤區(qū)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Python利用shutil實(shí)現(xiàn)拷貝文件功能

    Python利用shutil實(shí)現(xiàn)拷貝文件功能

    shutil?是一個(gè)?Python?內(nèi)置模塊,該模塊對(duì)文件的復(fù)制、刪除和壓縮等操作都提供了非常方便的支持。本文將利用shutil實(shí)現(xiàn)拷貝文件功能,需要的可以參考一下
    2022-07-07
  • Python使用gTTS庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)換為語(yǔ)音的詳細(xì)步驟

    Python使用gTTS庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)換為語(yǔ)音的詳細(xì)步驟

    文本轉(zhuǎn)換為語(yǔ)音(Text-to-Speech,簡(jiǎn)稱TTS)技術(shù)是人工智能的重要組成部分,廣泛應(yīng)用于智能助手、導(dǎo)航系統(tǒng)、讀屏軟件和智能家居等領(lǐng)域,TTS技術(shù)使得機(jī)器能夠?qū)嫖淖洲D(zhuǎn)換為自然流暢的語(yǔ)音,本文將介紹如何使用Python的gTTS庫(kù)實(shí)現(xiàn)簡(jiǎn)單的TTS功能,需要的朋友可以參考下
    2024-07-07
  • python中的split、rsplit、splitlines用法說(shuō)明

    python中的split、rsplit、splitlines用法說(shuō)明

    這篇文章主要介紹了python中的split、rsplit、splitlines用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論