第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

python 泛型注釋的不理解?

python 泛型注釋的不理解?

長(zhǎng)風(fēng)秋雁 2018-08-26 15:05:28
本人python新手, 在翻閱pep484, 以及mypy文檔的時(shí)候有遇到了一點(diǎn)不懂的地方, 如下:# 文檔實(shí)例如下:from typing import TypeVar, Generic T = TypeVar('T')class Stack(Generic[T]):     def __init__(self) -> None:         # Create an empty list with items of type T         self.items: List[T] = []    def push(self, item: T) -> None:         self.items.append(item)    def pop(self) -> T:         return self.items.pop()    def empty(self) -> bool:         return not self.items然后文檔下面有這樣一段話(huà):The Stack class can be used to represent a stack of any type: Stack[int], Stack[Tuple[int, str]], etc然后給出了一段實(shí)例用法:# Construct an empty Stack[int] instancestack = Stack[int]() stack.push(2) stack.pop() stack.push('x') # Type error我個(gè)人的理解是:T表示任意類(lèi)型Stack[int]表示Stack只能存儲(chǔ)int類(lèi)型, 所以下面?zhèn)魅肓艘粋€(gè)字符串就報(bào)錯(cuò)疑惑是:不知道上面的理解對(duì)不對(duì)如果我在一開(kāi)始就確定好堆里面的數(shù)據(jù)類(lèi)型就行了為什么要?jiǎng)?chuàng)造一個(gè)泛型?泛型在python中有沒(méi)有什么使用場(chǎng)景, 本人沒(méi)有接觸過(guò)java之類(lèi)的語(yǔ)言, 因此覺(jué)得就看看例子感覺(jué)特別抽象, 也不知道在上面場(chǎng)景下如何使用.本人剛剛接觸python, 若有理解錯(cuò)誤的地方還請(qǐng)多多包涵, 望有前輩能夠解惑!
查看完整描述

1 回答

?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

  • 對(duì)

  • 如果不用泛型,那我們就需要IntStack/StrStack。如果只是基本類(lèi)型還好,麻煩的是以后我們還得要TupleIntStrStack/TupleIntIntStrStrStack/MyLittleClassStack/MyLargeClassStack,每個(gè)都得重新聲明,太麻煩

  • 泛型主要用于容器,比方說(shuō)棧,隊(duì)列,我現(xiàn)在最常用的容器是concurrent.futures.Future

  • 泛型在強(qiáng)類(lèi)型語(yǔ)言(Java)里用的還是非常廣泛的,但mypy的使用率實(shí)在低下,所以看起來(lái)泛型沒(méi)什么使用場(chǎng)景。如果強(qiáng)制每個(gè)程序(尤其是庫(kù))都要有類(lèi)型標(biāo)識(shí),例子就多了。


查看完整回答
反對(duì) 回復(fù) 2018-08-27
  • 1 回答
  • 0 關(guān)注
  • 1240 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)