成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:如何實現(xiàn)高性能自動補(bǔ)全?

開發(fā) 前端
IDE能夠正確的做自動補(bǔ)全。在Mypy做靜態(tài)類型檢查時,也能過正常通過檢查。但當(dāng)代碼實際運行時,會自動忽略這個導(dǎo)入的類,從而避免對代碼的運行效率造成影響。

我們知道,在寫Python時,使用IDE的自動補(bǔ)全功能,可以大大提高代碼的開發(fā)效率。使用類型標(biāo)注功能,可以讓IDE知道應(yīng)該怎么做自動補(bǔ)全。

當(dāng)我們沒有類型標(biāo)注時,IDE并不知道函數(shù)的某個參數(shù)是什么東西,沒有辦法做補(bǔ)全,如下圖所示。

圖片圖片

但當(dāng)我們把類型標(biāo)注加上以后,IDE就能正常補(bǔ)全了,如下圖所示:

圖片圖片

這樣做,需要從另一個文件中,把這個參數(shù)對應(yīng)的類導(dǎo)入到當(dāng)前文件里面,然后把類作為類型填寫到函數(shù)參數(shù)后面。咋看起來沒有什么問題,并且我,還有很多看文章的同學(xué),應(yīng)該經(jīng)常這樣寫類型標(biāo)注的代碼,從而提高代碼的開發(fā)效率。

但如果你的項目規(guī)模大起來以后,你就會遇到幾個比較麻煩的問題:

  • 導(dǎo)入鏈過長:例如上面截圖中的代碼,我從model.py中導(dǎo)入了Detail這個類。如果我在model.py文件的開頭,還有from aaa import bbb,而在aaa.py文件開頭,又有from ccc import ddd;在ccc.py開頭,又有from xxx import yyy……這個導(dǎo)入鏈條就會變得很長。雖然Python對模塊導(dǎo)入已經(jīng)做了緩存,多次執(zhí)行from xxx import yyy時,只有第一次會生效,后面都是讀取緩存,但讀取緩存也會消耗一些時間。
  • 循環(huán)依賴:一般情況下,你的代碼能夠正常運行,那么應(yīng)該是不會存在循環(huán)依賴的。否則肯定報錯了。但現(xiàn)在你在一個原來的依賴鏈條之外的文件中,為了做類型標(biāo)注,導(dǎo)入了一個已有的文件。此時有可能就會引入循環(huán)依賴。特別是當(dāng)代碼規(guī)模大起來以后,如果一開始沒有設(shè)計好代碼結(jié)構(gòu),稍不注意就會出現(xiàn)循環(huán)依賴。

如果你引入一個類,僅僅是為了做類型標(biāo)注,那么這個問題實際上非常好解決。在Python的typing模塊里面,有一個常量,叫做TYPE_CHECKING,它就是為了解決這個問題而設(shè)計的。在你使用python xxx.py來啟動代碼時,TYPE_CHECKING的值是False。但當(dāng)IDE的類型檢查或者M(jìn)ypy這種靜態(tài)類型檢查工具運行時,TYPE_CHECKING的值是True。

因此,我們可以使用下面這段代碼,來提高代碼的運行效率,同時規(guī)避循環(huán)依賴的問題:

from typing import TYPE_CHECKING

if TYPE_CHECKING:
   from xxx import YYY

def parse_detail(params: 'YYY'):
   ...

注意,在函數(shù)參數(shù)的類型標(biāo)注里面,類YYY需要以字符串的形式寫出。如下圖所示:

圖片圖片

使用這種方法,在寫代碼時,IDE能夠正確的做自動補(bǔ)全。在Mypy做靜態(tài)類型檢查時,也能過正常通過檢查。但當(dāng)代碼實際運行時,會自動忽略這個導(dǎo)入的類,從而避免對代碼的運行效率造成影響。

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2024-10-16 21:47:15

2021-10-15 21:08:31

PandasExcel對象

2025-05-28 03:15:00

Scrapy數(shù)據(jù)sleep

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2021-07-27 21:32:57

Python 延遲調(diào)用

2023-10-28 12:14:35

爬蟲JavaScriptObject

2022-03-12 20:38:14

網(wǎng)頁Python測試

2024-07-30 08:16:18

Python代碼工具

2024-07-30 08:11:16

2021-05-08 19:33:51

移除字符零寬

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2024-09-05 12:11:25

大模型抓取列表頁

2020-12-11 06:30:00

工具分組DataFrame

2021-04-12 21:19:01

PythonMakefile項目

2022-03-07 09:14:04

Selenium鼠標(biāo)元素

2024-02-20 22:13:48

Python項目Java

2020-05-19 13:55:38

Python加密密碼

2024-08-27 22:08:13

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 狠狠操婷婷 | 久久久精品视频一区二区三区 | 欧美大片在线观看 | 91资源在线 | 99热精品在线观看 | 爱操av| 国产露脸国语对白在线 | 国产精品伦一区二区三级视频 | 国产精品美女一区二区三区 | 亚洲综合在线播放 | 久久国产亚洲精品 | 亚洲不卡在线观看 | gogo肉体亚洲高清在线视 | 毛片一级片 | 碰碰视频| 精品视频一区二区在线观看 | 欧美jizzhd精品欧美巨大免费 | 自拍偷拍视频网 | 伊人网在线播放 | 欧美在线看片 | 久久新| 亚洲 91| 亚洲精品成人免费 | 国产日批| 亚洲精品电影 | 国产色片在线 | 亚洲精品在线观看网站 | 午夜精品久久久久久久久久久久 | 国产激情在线播放 | 天天爽夜夜爽精品视频婷婷 | 亚洲精品99 | 成人精品免费视频 | 久久国产精品无码网站 | 亚洲成人一区二区 | 综合久久亚洲 | 99免费在线视频 | av网站在线看 | 久久中文字幕电影 | 精品免费视频 | 久久久久久久久一区 | 国产精品伦理一区二区三区 |