问题描述
我想编写一个函数[ "3","3","1" ]
来为is_bare_dict
返回True,为任何类型的字典(例如Dict
)返回false。
我想出的一种方法是:
Dict[int,str]
您可以运行上面的代码:https://wandbox.org/permlink/sr9mGbWo3Lh7VrPh
解决方法
也可以一行完成
from typing import Dict,KT,VT
def is_bare_dict(typ) -> bool:
return not isinstance(typ.__args__,tuple)
print(is_bare_dict(Dict)) # Print True
print(is_bare_dict(Dict[int,str])) # Print False
,
def is_typing_dot_dict(typ) -> bool:
return typ is typing.Dict
如果您真的想测试某物是否为typing.Dict
,则只需这样做。不过,这可能不是正确的测试方法-似乎您也想将dict
对待,甚至与typing.Dict[Any,Any]
对待。 (此外,typing.Dict
已过时,可能最终会消失。)