国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁/技術文章
文章詳情頁

Python類型提示Type Hints示例詳解

瀏覽:24日期:2022-07-28 18:26:42
目錄為什么會有類型提示解決上述問題,類型提示類型提示分類變量類型提示沒有使用類型提示使用了類型提示變量類型提示-元組打包變量類型提示-元組解包在類里面使用函數參數類型提示栗子一栗子二總結為什么會有類型提示

Python是一種動態類型語言,這意味著我們在編寫代碼的時候更為自由,運行時不需要指定變量類型

但是與此同時 IDE 無法像靜態類型語言那樣分析代碼,及時給我們相應的提示,比如字符串的 split 方法

def split_str(s): strs = s.split(',')

由于不知道參數 s 是什么類型,所以當你敲 s. 的時候不會出現 split 的語法提示

解決上述問題,類型提示

Python 3.6 新增了兩個特性 PEP 484 和 PEP 526

PEP 484:https://www.python.org/dev/peps/pep-0484/ PEP 526:https://www.python.org/dev/peps/pep-0526/

幫助 IDE 為我們提供更智能的提示

這些新特性不會影響語言本身,只是增加一點提示

類型提示分類

主要分兩個

變量提示:PEP 526 特性加的 函數參數提示:PEP 484 特性加的 變量類型提示沒有使用類型提示

想說明變量的數據類型只能通過注釋

# ’primes’ is a list of integersprimes = [] # type: List[int]# ’captain’ is a string (Note: initial value is a problem)captain = ... # type: strclass Starship: # ’stats’ is a class variable stats = {} # type: Dict[str, int]使用了類型提示

from typing import List, ClassVar, Dict# int 變量,默認值為 0num: int = 0# bool 變量,默認值為 Truebool_var: bool = True# 字典變量,默認為空dict_var: Dict = {}# 列表變量,且列表元素為 intprimes: List[int] = []class Starship: # 類變量,字典類型,鍵-字符串,值-整型 stats: ClassVar[Dict[str, int]] = {} # 實例變量,標注了是一個整型 num: int

這里會用到 typing 模塊,后面會再展開詳解

假設變量標注了類型,傳錯了會報錯嗎?

from typing import List# int 變量,默認值為 0num: int = 0# bool 變量,默認值為 Truebool_var: bool = True# 字典變量,默認為空dict_var: Dict = {}# 列表變量,且列表元素為 intprimes: List[int] = []num = '123'bool_var = 123dict_var = []primes = ['1', '2']print(num, bool_var, dict_var, primes)# 輸出結果123 123 [] [’1’, ’2’]

它并不會報錯,但是會有 warning,是 IDE 的智能語法提示

Python類型提示Type Hints示例詳解

所以,這個類型提示更像是一個規范約束,并不是一個語法限制

變量類型提示-元組打包

# 正常的元組打包a = 1, 2, 3# 加上類型提示的元組打包t: Tuple[int, ...] = (1, 2, 3)print(t)t = 1, 2, 3print(t)# py3.8+ 才有的寫法t: Tuple[int, ...] = 1, 2, 3print(t)t = 1, 2, 3print(t)# 輸出結果(1, 2, 3)(1, 2, 3)(1, 2, 3)(1, 2, 3)

為什么要加 ...

Python類型提示Type Hints示例詳解

不加的話,元組打包的時候,會有一個 warning 提示

變量類型提示-元組解包

# 正常元組解包message = (1, 2, 3)a, b, c = messageprint(a, b, c) # 輸出 1 2 3# 加上類型提示的元組解包header: strkind: intbody: Optional[List[str]]# 不會 warning 的栗子header, kind, body = ('str', 123, ['1', '2', '3'])# 會提示 warning 的栗子header, kind, body = (123, 123, ['1', '2', '3'])

Optional 會在后面講 typing 的時候詳解

在類里面使用

class BasicStarship: captain: str = ’Picard’ # 實例變量,有默認值 damage: int # 實例變量,沒有默認值 stats: ClassVar[Dict[str, int]] = {} # 類變量,有默認值

ClassVar

是 typing 模塊的一個特殊類 它向靜態類型檢查器指示不應在類實例上設置此變量 函數參數類型提示

不僅提供了函數參數列表的類型提示,也提供了函數返回的類型提示

栗子一

# 參數 name 類型提示 str,而函數返回值類型提示也是 strdef greeting(name: str) -> str: return ’Hello ’ + name栗子二

def greeting(name: str, obj: Dict[str, List[int]]) -> None: print(name, obj)總結

到此這篇關于Python類型提示Type Hints的文章就介紹到這了,更多相關Python類型提示Type Hints內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲最大成人 | 国产一区在线观看免费 | 精品国产自在在线在线观看 | 一级黄色毛片播放 | 自拍偷在线精品自拍偷无码专区 | 亚洲美女黄色片 | 国产一区二区在线播放 | 最新怡红院全部视频在线 | 在线观看亚洲天堂 | 久草在线视频首页 | 久久久久9999 | 欧美日韩精品在线视频 | 成人a在线 | 久草在线国产 | 亚洲精品tv久久久久 | 97精品福利视频在线 | 91视频国内| 亚洲精品午夜久久久伊人 | 精品国产三级a∨在线 | 日本一级大黄毛片免费基地 | 99国产精品视频免费观看 | 手机看片久久高清国产日韩 | 国产大臿蕉香蕉大视频女 | 在线亚洲观看 | 91亚洲精品在看在线观看高清 | 国产三级小视频在线观看 | 一区二区三区在线视频观看 | 18成人网 | 香港三级日本三级妇人三级 | 欧美日韩精彩视频 | fefe66免费毛片你懂的 | 亚洲成人一区 | 国产精品美女一区二区 | 久久精品国产精品亚洲艾 | 免费人成在线观看网站 | 精品国产区一区二区三区在线观看 | 久久国产精品歌舞团 | 美女性视频网站 | 毛片一级免费 | 国产精品久久久久久 | 日本高清福利视频在线观看 |