python 文檔字符串_新款Python文檔字符串生成器來了

又一款懶人神器問世了:

Visual Studio Code的擴展,基于CodeBERT的Python文檔字符串生成器。

看來現在,這群偷「懶」的程序員們連文檔字符串都不想自己寫了。

基于CodeBERT的生成器

跟正常的DocStrings用法一樣,你只需要輸入三引號「“””」,之后按Enter,便能調用這個工具。就像這樣:

并且,這個生成器還可以在幾種不同類型的文檔字符串格式之間進行選擇。

而這個工具,不僅僅能夠幫助寫代碼的人,還可以方便后來人讀代碼。可以說是非常方便的一個擴展了。

這個工具的本質,就是一個自然語言識別的AI,它能夠識別你所寫代碼的內容,然后輸出對應的字符串。

具體是如何識別的,該AI的作者是這么介紹的:

參數類型是通過PEP 484類型、默認值和var標簽進行識別的。

識別輸入之后便是推斷,這之間進行訓練的方法,也并不復雜,通過CodeBERT便可以實現。

CodeBERT是一種雙模預訓練模型,它可以捕捉自然語言和編程語言之間的語義連接,是目前已知的第一個大型 NL-PL(自然語言-編程語言)預訓練模型。

在訓練過程中,使用 CodeSearchNet 語料庫作為訓練數據,并使用 CodeBERT 中的 Code2NL微調任務。

之后,進行的推斷基準測試如下:

從上圖也能看出,在不同的推斷基準測試中,所需要的生成時間都很短(2s內),這體現在操作上的話,就是延遲。

目前,這個生成器可以支持識別args、kwargs、decorators和errors等參數類型。

此外,還可以輸出Google、docBlockr、Numpy、Sphinx等Docstring格式,PEP0257類型的格式,也即將上線。

使用方法

1、從容器中運行模型推斷服務

具有GPU的話:在安裝nvidia-docker后,運行docker run-it-d-GPU 0-p 5000:5000 gray kode/ai-docstring。

只有CPU:運行docker run-it-d-p 5000:5000 gray kode/ai-docstring。

2、在VSCode中安裝擴展并使用

光標必須在定義正下方的行上,以生成完全自動填充的文檔字符串。

用三重引號「“””或‘’’」打開文檔字符串后,按Enter鍵;

鍵盤快捷鍵是ctrl+shift+2,Mac為cmd+shift+2。

網友討論

該生成器一經發布,便引起了網友們的討論。

有網友認為這是一項非常便利的技術,非常期待:

不過,也有網友認為這項技術仍具有不小的局限性:

比如這位網友認為:更常見的注釋,是在代碼中沒有立即出現的上下文之間添加內容。

不過,雖然有局限,但是人總是在「懶」的過程中變得更「懶」(狗頭)。

比如jQuery的流行,是因為開發者懶得為DOM編寫跨瀏覽器兼容性代碼;

而之后Angular.js的流行,是因為開發者連DOM都懶得操作。

所以,還是非常期待這個擴展的后續,這些程序員能不能針對這些局限性進一步偷懶的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534811.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534811.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534811.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 棧實現歷史記錄后退,棧:如何實現瀏覽器的前進和后退功能

受限制的線性表先進后出實現一個棧數組實現叫順序棧public class ArrayStack {private String[] items;//存儲數據的數組private int count;//棧中的元素private int n;//棧的大小public ArrayStack(int n){this.items new String[n];this.n n;this.count 0;}//入棧操作publ…

vc 通過句柄修改窗口大小_VC應用(1)通過VC修改銷售訂單行項目的字段

VC是SAP中非常重要的功能,過去多年來,我參與了不少使用VC的項目,我將通過多篇文章介紹VC的一些應用,本文介紹通過VC修改銷售訂單行項目的字段01 概覽在銷售訂單創建時,對于可配置物料來說,不同的配置可能會…

mysql增加實例,MySQL的簡單使用筆記:增加實例以及啟動

增加實例增加實例這里指的的在源碼編譯安裝完MySQL之后建立一個初始的數據庫實例,占用某一端口,或者是使用新端口啟動新的mysqld進程。MySQL需要一些基礎的數據庫以及表來完成基本的設定,比如控制連接的mysql.user表:123456789101…

springboot starter工作原理_98,談談SpringBoot的工作原理

對技術的探索,一切源于好奇心,保持好奇心,才能讓人更年輕。至今,我們已經有了很多創建SpringBoot項目的經驗,比如我們要創建一個支持web開發的項目,我們只需要引入web-starter模塊即可。那么,Sp…

精英主義 遺傳算法 matlab,遺傳算法優化 - osc_lfs4vsih的個人空間 - OSCHINA - 中文開源技術交流社區...

1.遺傳算法簡介遺傳算法是一種基于自然選擇和群體遺傳機理的搜索算法,它模擬了自然選擇和自然遺傳過程中的繁殖、雜交和突變現象.再利用遺傳算法求解問題時,問題的每一個可能解都被編碼成一個“染色體”,即個體,若干個個體構成了群體(所有可能解).在遺傳算法開始時,總是隨機的產…

python 類靜態屬性_如何從Python中的類中引用靜態屬性?

您面臨的問題是因為您不了解類聲明的作用域是如何工作的。類聲明在其自己的作用域內執行。執行完成后,將創建一個新的類對象,并將獲得的范圍作為其__dict__附加到該類。在注意:類范圍是從方法范圍內搜索的而不是!這意味著當在方法…

php后臺管理員登錄密碼錯誤,如果后臺管理員的密碼錯誤,我該怎么辦,還有兩種找回密碼的方法...

Dedecms是中國著名的網站管理核心. 由于編織夢想簡單易用,因此可以進行二次開發,并且可以實現各種網站. 在使用dedecms的過程中,如果忘記了夢想管理后臺的密碼怎么辦?神山個人博客分享了兩種修改(重置)管理員密碼的方法.1. 下載織…

python logging模塊 默認_python logging模塊

函數式簡單配置importlogginglogging.debug(debug message) #計算或者工作的細節logging.info(info message) #記錄一些用戶的增刪改查的操作logging.warning(warning message) #警告操作logging.error(error message) #警告操作logging.critical(critical message) #批判的 直…

mac安裝多php環境變量配置,Mac如何安裝多個php版本

Mac安裝多個php版本的方法:首先打開Mac上的終端工具,并確認安裝Homebrew;然后安裝【php5.5】及對應擴展;最后執行指令【brew unlink php55】刪除brew中php的軟鏈即可。Mac安裝多個php版本的方法:1、打開Mac上的終端工具…

phpexcel 獲取工作簿名稱_工作分享 | Excel快速匯總考勤

點擊藍字關注我們每月月底,各位同事把考勤表報到部門后,檢查核對再匯總一份總考勤表上報,傳統的復制粘貼總是占用不少時間,還容易出錯。為提高工作效率,現利用Excel實現考勤快速匯總。01 統一考勤模板,每個…

php進程通訊方式,PHP進程模型、進程通訊方式、進程線程的區別分別有哪些?

PHP進程模型是一個正在執行的程序,可以分配給處理器并由處理器執行的一個實體;PHP進程通訊方式有管道及有名管道,信號,共享內存等;PHP進程線程的區別有進程是資源的分配和調度的一個獨立單元,而線程是CPU調…

iphone怎樣關閉副屏_小米新設計專利曝光:“Z”型折疊屏手機

折疊屏手機可以說是最近幾年的熱門話題,雖然并未大面積普及,但已有多家廠商量產上市了旗下的折疊屏手機。同樣作為知名廠商的小米,曾在此前展示過旗下的折疊屏手機視頻,但并未真正發布。而近日曝光的一份小米旗下專利設計則表明小…

php socket開發斗地主,基于狀態機模型的斗地主游戲(NodeJsSocketIO)

1. 系統結構系統考慮使用Nodejs和SocketIo實現服務器端邏輯,前端使用HTML5。2. 邏輯流程1 . 主要邏輯包括用戶進入游戲、等待對家進入游戲、游戲過程、結束統計這4個過程。2 . 游戲過程的邏輯具體如下3 . 服務器-客戶端通訊邏輯如下3. 客戶端界面設計1 . 登錄界面2 …

python幾何拼貼畫_圖形幾何圖形拼貼畫

四邊形教學內容:教材第34頁?——36頁教學目標:1.直觀感知四邊形,能區分和辨認四邊形,知道四邊形的特征.進一步認識長方形和正方形,知道它們的角都是直角.2.通過畫一畫、找一找、拼一拼等活動,培養學生[此文轉于斐斐課件園?FFKJ.Net]的觀察比較和概括抽象的能力,發展空間想象能…

wgs84轉經緯度_wgs84經緯度轉為cgcs2000平面坐標

航拍測繪中,pos數據多數是wgs84,而GCP坐標是2000或者80坐標。有如下2情況需要轉換坐標,1.不同坐標系刺點時,位置相差較遠,影響工作效率。2.該軟件不支持wgs84轉國家2000,比如photoscan。所以需要把pos數據轉為跟像控點…

php system 255,GitHub - dwg255/OA-SYS: OA辦公系統開源項目

OA-SYSOA辦公系統開源項目這是一套主要用于演示、學習為目的OA辦公自動化系統。該系統具備基本的自動化辦公功能。在使用前請確保您已閱讀本系統協議部分內容。主要功能列表用戶和用戶組、權限管理個人網盤和分享文件生產計劃任務和業績考評通訊錄和內部短消息公告系統個人工作…

wpcomments post.php,WordPress移動wp-comments-post文件防垃圾評論

將wp-comments-post文件移動到主題目錄中達到阻止垃圾評論。需要修改程序文件:一、首先打開Wordpress程序根目錄的wp-comments-pos.php文件,用:require( dirname(__FILE__) . /../../../wp-load.php );替換第16行的:require( dirn…

人工蜂群算法python_改進的人工蜂群算法解決聚類問題(在Python中的分步實現)...

在之前的文章中,我介紹了如何通過實施名為Artificial Bee Colony(ABC)的群集智能(SI)算法來解決現實世界中的優化問題。現在是時候讓我們掌握一些真實的數據并解釋我們如何使用我們的ABC算法的Python實現來執行群集任務。但在此之前,讓我們深入了解一下聚…

python涉及到的邏輯_涉及邏輯運算的python表達式的運算順序

以下代碼并不報錯,而我理解在”point 1″處如果先運算小括號里面的表達式,而y并不存在,不應該報錯嗎?難道發現x 10的短路運算優先于小括號里面的表達式運算?將這一行中x 10改為x 100后報錯了,這個理解沒…

oracle sql last_value,図でイメージするOracle DatabaseのSQL全集 第3回 分析関數

指定したソートキーでの、最初の行の値を求めるのが、First_Value関數。指定したソートキーでの、最後の行の値を求めるのが、Last_Value関數。指定したソートキーでの、(Row_Numberな順位が)n番目の行の値を求めるのが、nth_Value関數となります。Oracle11gR2でnth_Value関數が…