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

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

打字:函數(shù)返回帶有解包列表的元組時(shí)的類(lèi)型提示

打字:函數(shù)返回帶有解包列表的元組時(shí)的類(lèi)型提示

肥皂起泡泡 2023-05-23 16:00:30
我有這個(gè):from typing import Tupleimport randoma = random.randint(100) # some random numberdef foo(a: int) -> Tuple:    b = []    for _ in random.randint(0, 10):       b.append(random.randint(-5, 5) # adding random numbers to b    return a, *b我想為這個(gè)函數(shù)寫(xiě)返回類(lèi)型,但我現(xiàn)在不知道如何正確地做到這一點(diǎn):我試過(guò)這個(gè):from typing import Tupleimport randoma = random.randint(100) # some random number. It doesn't matterdef foo(a: int) -> Tuple[int, *Tuple[int, ...]]:    b = []    for _ in random.randint(0, 10):       b.append(random.randint(-5, 5) # adding random numbers to b    return a, *bPycharm with mypy說(shuō):foo(a: int) -> Tuple[int, Any] 但我需要函數(shù)返回傳遞給它的變量類(lèi)型在實(shí)際項(xiàng)目中,它采用泛型并返回一個(gè)元組,其中包含對(duì)象和解包列表以提高可讀性。實(shí)函數(shù):...    def get_entities_with(self, *component_types):        for entity in self.entities.values():            require_components = [component for component in entity.components if type(component) in component_types]            if len(require_components) == len(component_types):                yield entity, *require_components....py 文件:T = TypeVar("T")...    def get_entities_with(self, *components:Type[T]) -> Generator[Entity, *Tuple[T, ...]]: ...
查看完整描述

1 回答

?
LEATH

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

如果您使用的是 Python?3.11或更高版本,則可以簡(jiǎn)單地在返回類(lèi)型的類(lèi)型提示中使用解包星號(hào) (?*),類(lèi)似于您在問(wèn)題中的寫(xiě)法(但略有不同,請(qǐng)參見(jiàn)下面的示例)。

但是,截至撰寫(xiě)本文時(shí),Python 3.11 仍未公開(kāi),您可能使用的是3.10 或更早版本。如果是這種情況,您可以使用向后移植的特殊類(lèi)型Unpack,它typing_extensions在pypi上可用。

用法示例:

from typing_extensions import Unpack


# Python <=3.10

def unpack_hints_py_10_and_below(args: list[str]) -> tuple[int, Unpack[str]]:

? ? first_arg, *rest = args

? ? return len(first_arg), *rest


# Python >= 3.11

def unpack_hints_py_11_and_above(args: list[str]) -> tuple[int, *str]:

? ? first_arg, *rest = args

? ? return len(first_arg), *rest

查看完整回答
反對(duì) 回復(fù) 2023-05-23
  • 1 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專(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)