在运行时对输入参数进行类型检查

问题描述 投票:0回答:0

我有一个输入

value
需要传递,它可以是
dict
list[dict]
。我想允许将元组作为列表输入的一部分传递,但当前代码并非如此。

class MyClass:
    def __init__(self):
        self.count = 0
    def __call__(self,value: T, *args, **kwargs):
        if isinstance(value, dict):
            return self.dict_call()
        if isinstance(value, list):
            return self.list_call()


    def dict_call(self):
        # some code
        return "this is dictionary"
    def list_call(self):
        # some code
        return "this is a list"

我想知道在这种情况下添加协议是否可行?

@runtime_checkable
class myProtocol(Protocol):
    def update(self) -> None:
        ...

我正在阅读有关使用协议的一些缺点,所以不确定在这种情况下它是否真的是最好的选择?

python mypy typing
© www.soinside.com 2019 - 2024. All rights reserved.