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

一日一技:如何實現高性能自動補全?

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

我們知道,在寫Python時,使用IDE的自動補全功能,可以大大提高代碼的開發效率。使用類型標注功能,可以讓IDE知道應該怎么做自動補全。

當我們沒有類型標注時,IDE并不知道函數的某個參數是什么東西,沒有辦法做補全,如下圖所示。

圖片圖片

但當我們把類型標注加上以后,IDE就能正常補全了,如下圖所示:

圖片圖片

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

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

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

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

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

from typing import TYPE_CHECKING

if TYPE_CHECKING:
   from xxx import YYY

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

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

圖片圖片

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

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2022-06-28 09:31:44

LinuxmacOS系統

2024-10-16 21:47:15

2021-10-15 21:08:31

PandasExcel對象

2025-05-28 03:15:00

Scrapy數據sleep

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2021-07-27 21:32:57

Python 延遲調用

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:16:18

Python代碼工具

2022-03-12 20:38:14

網頁Python測試

2024-07-30 08:11:16

2021-05-08 19:33:51

移除字符零寬

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-04-12 21:19:01

PythonMakefile項目

2020-12-11 06:30:00

工具分組DataFrame

2024-09-05 12:11:25

大模型抓取列表頁

2022-03-07 09:14:04

Selenium鼠標元素

2024-02-20 22:13:48

Python項目Java

2020-05-19 13:55:38

Python加密密碼

2024-08-27 22:08:13

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线播放一区 | 久久久91精品国产一区二区三区 | 精品成人一区 | 美女视频黄的免费 | 97超级碰碰 | 国产在线一区二区三区 | 一级黄色片毛片 | 在线午夜 | 久久国产一区二区三区 | 男人的天堂视频网站 | 欧美性极品xxxx做受 | 亚洲天堂二区 | 欧美日韩高清 | 欧美一级欧美三级在线观看 | 久久久www成人免费精品 | 国产精品1区 | 神马福利 | 成人在线精品视频 | 综合精品久久久 | 国产午夜精品久久久 | 国产精品观看 | 欧美性生活一区二区三区 | 亚洲视频欧美视频 | 一区二区三区日韩 | 久久久久国色av免费观看性色 | 高清亚洲 | 欧美日韩美女 | 午夜精| 亚洲精品福利视频 | 成人精品福利 | 超碰美女在线 | 91精品国产欧美一区二区成人 | 国产成人一区二区三区 | 国产在线一区二 | 国产成人一区二区三区 | www.com久久久| 人人做人人澡人人爽欧美 | 亚洲欧美成人在线 | 日日噜| 亚洲精品自拍 | 欧洲一区在线观看 |