最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python類型提示Type Hints示例詳解

 更新時間:2021年08月17日 10:41:54   作者:小菠蘿測試筆記  
在做自動化測試的時候,類型提示會讓你寫代碼時更加流程,當你在一個模塊定義了類型,而其他模塊沒有提示的時候,是相當不方便,這篇文章主要給大家介紹了關(guān)于Python類型提示Type Hints的相關(guān)資料,需要的朋友可以參考下

為什么會有類型提示

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

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

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

由于不知道參數(shù) s 是什么類型,所以當你敲  s.  的時候不會出現(xiàn) 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 特性加的
  • 函數(shù)參數(shù)提示:PEP 484 特性加的

變量類型提示

沒有使用類型提示

想說明變量的數(shù)據(jù)類型只能通過注釋

# 'primes' is a list of integers
primes = []  # type: List[int]

# 'captain' is a string (Note: initial value is a problem)
captain = ...  # type: str


class Starship:
    # 'stats' is a class variable
    stats = {}  # type: Dict[str, int]

使用了類型提示

from typing import List, ClassVar, Dict

# int 變量,默認值為 0
num: int = 0

# bool 變量,默認值為 True
bool_var: bool = True

# 字典變量,默認為空
dict_var: Dict = {}

# 列表變量,且列表元素為 int
primes: List[int] = []


class Starship:
    # 類變量,字典類型,鍵-字符串,值-整型
    stats: ClassVar[Dict[str, int]] = {}

    # 實例變量,標注了是一個整型
    num: int

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

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

from typing import List

# int 變量,默認值為 0
num: int = 0

# bool 變量,默認值為 True
bool_var: bool = True

# 字典變量,默認為空
dict_var: Dict = {}

# 列表變量,且列表元素為 int
primes: List[int] = []


num = "123"
bool_var = 123
dict_var = []
primes = ["1", "2"]

print(num, bool_var, dict_var, primes)


# 輸出結(jié)果
123 123 [] ['1', '2']

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

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

變量類型提示-元組打包

# 正常的元組打包
a = 1, 2, 3

# 加上類型提示的元組打包
t: Tuple[int, ...] = (1, 2, 3)
print(t)

t = 1, 2, 3
print(t)

# py3.8+ 才有的寫法
t: Tuple[int, ...] = 1, 2, 3
print(t)

t = 1, 2, 3
print(t)


# 輸出結(jié)果
(1, 2, 3)
(1, 2, 3)
(1, 2, 3)
(1, 2, 3)

為什么要加 ...

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

變量類型提示-元組解包

# 正常元組解包
message = (1, 2, 3)
a, b, c = message
print(a, b, c)  # 輸出 1 2 3

# 加上類型提示的元組解包
header: str
kind: int
body: 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 模塊的一個特殊類
  • 它向靜態(tài)類型檢查器指示不應(yīng)在類實例上設(shè)置此變量

函數(shù)參數(shù)類型提示

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

栗子一

# 參數(shù) name 類型提示 str,而函數(shù)返回值類型提示也是 str
def greeting(name: str) -> str:
    return 'Hello ' + name

栗子二

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

總結(jié)

到此這篇關(guān)于Python類型提示Type Hints的文章就介紹到這了,更多相關(guān)Python類型提示Type Hints內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas重置索引標簽的實現(xiàn)示例

    pandas重置索引標簽的實現(xiàn)示例

    在使用Pandas進行數(shù)據(jù)處理時,有時候我們可能會需要對數(shù)據(jù)進行重置索引的操作,本文主要介紹了pandas重置索引標簽的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Django 解決開發(fā)自定義拋出異常的問題

    Django 解決開發(fā)自定義拋出異常的問題

    這篇文章主要介紹了Django 解決開發(fā)自定義拋出異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python異步爬蟲requests和aiohttp中代理IP的使用

    Python異步爬蟲requests和aiohttp中代理IP的使用

    本文主要介紹了Python異步爬蟲requests和aiohttp中代理IP的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python環(huán)境路徑配置以及命令行運行腳本

    python環(huán)境路徑配置以及命令行運行腳本

    這篇文章主要為大家詳細介紹了python環(huán)境路徑配置以及命令行運行腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python利用platform模塊獲取系統(tǒng)信息

    python利用platform模塊獲取系統(tǒng)信息

    這篇文章主要介紹了python利用platform模塊獲取系統(tǒng)信息,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • Python實現(xiàn)自動化批量調(diào)整Word樣式

    Python實現(xiàn)自動化批量調(diào)整Word樣式

    在日常工作中,處理大量的Word文檔是一個常見的任務(wù),尤其是需要批量修改文檔的樣式時,本文為大家介紹了如何使用Python實現(xiàn)自動化批量調(diào)整Word樣式,需要的可以參考下
    2024-12-12
  • Python3 類型標注支持操作

    Python3 類型標注支持操作

    這篇文章主要介紹了Python3 類型標注支持操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python學習之字符串常用操作詳解

    Python學習之字符串常用操作詳解

    字符串是Pyhon中的常用的數(shù)據(jù)類型,這篇文章主要為大家詳細介紹一下python字符串的一些常用操作,文中示例代碼講解詳細,需要的朋友可以參考下
    2022-09-09
  • Python趣味挑戰(zhàn)之教你用pygame畫進度條

    Python趣味挑戰(zhàn)之教你用pygame畫進度條

    pygame四種方法教會你畫進度條,其實也不難,文中有非常詳細的代碼示例,對正在學習python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • python實現(xiàn)簡易淘寶購物

    python實現(xiàn)簡易淘寶購物

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡易淘寶購物,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評論

宜兰市| 大同市| 泰来县| 西林县| 甘谷县| 镇平县| 汕头市| 绥德县| 白银市| 息烽县| 十堰市| 义马市| 南溪县| 津市市| 鄢陵县| 青田县| 镇沅| 崇信县| 巴青县| 连州市| 上饶市| 北票市| 纳雍县| 商城县| 阳曲县| 东安县| 乌兰浩特市| 曲周县| 淳化县| 蒙山县| 新源县| 竹山县| 江安县| 大化| 通许县| 新河县| 东阳市| 临桂县| 墨脱县| 绍兴县| 江陵县|