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

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

運(yùn)算符模塊的 Python3 類(lèi)型提示

運(yùn)算符模塊的 Python3 類(lèi)型提示

汪汪一只貓 2023-07-27 14:08:58
如何為應(yīng)該是運(yùn)算符函數(shù)的參數(shù)編寫(xiě)類(lèi)型提示?例如,看這個(gè)函數(shù):import operatorfrom typing import Dict, Tupledef func(thresholds: Dict[str, Tuple[operator, float]] = None):    if thresholds is None:        thresholds = {"height": (operator.lt, 0.7), "width": (operator.gt, 0.1)}    pass當(dāng)我嘗試運(yùn)行我的代碼時(shí),我得到:TypeError: Tuple[t0, t1, ...]: each t must be a type. Got <module 'operator' from ...>.編輯:我意識(shí)到運(yùn)算符是一個(gè)模塊,而不是類(lèi)型,并且我正在尋找的參數(shù)是該模塊中的函數(shù)。我想看看是否有任何方法可以讓用戶知道我期望一個(gè)運(yùn)算符函數(shù)作為參數(shù)。是在文檔字符串中解釋的唯一方法嗎?
查看完整描述

1 回答

?
慕神8447489

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

operator是一個(gè)模塊,而不是一個(gè)類(lèi)或類(lèi)型。您想要做的是創(chuàng)建一個(gè)可以滿足傳遞給的函數(shù)的類(lèi)型提示func。如果我們從頭開(kāi)始編寫(xiě)operator.lt,它可能看起來(lái)像這樣:


from numbers import Number


def le(a: Number, b: Number) -> bool:

    ...

使用Callable類(lèi)型我們可以將其寫(xiě)為:


Callable[[Number, Number], bool]

總而言之,你會(huì)得到這樣的結(jié)果:


import operator

from typing import Dict, Tuple, Callable, Optional

from numbers import Number



Operator = Callable[[Number, Number], bool]

OperatorDict = Dict[str, Tuple[Operator, float]]



def func(thresholds: Optional[OperatorDict] = None) -> None:

    if thresholds is None:

        thresholds = {"height": (operator.lt, 0.7), "width": (operator.gt, 0.1)}

    pass


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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