【发布时间】:2021-11-05 01:12:54
【问题描述】:
我一直在用一个小时的最佳时间来试图弄清楚为什么 Pylance 会指示我没有看到过载整体存在错误。
这是我的代码
PR = TypeVar('PR', bound=str)
VA = TypeVar('VA')
class NS(Mapping[PR, VA]):
@overload
def __getitem__(self, property: PR) -> VA:
...
@overload
def __getitem__(self, property: Sequence[PR]) -> List[VA]:
...
def __getitem__(self, property: PR|Sequence[PR]) -> VA|List[VA]:
# function implementation
【问题讨论】:
-
万一我做错了,应该有人帮我弄清楚。我想要在提供一系列属性
PR时返回值列表VA。如果提供了单个属性,则返回单个值。 -
嗯最后一个 getitem 没有重载装饰器?除了第一个和第二个的签名是第三个的子集
-
@Copperfield 最后一个getitem是函数实现。
-
我试图删除函数实现上的注释,我得到一个新错误“参数'属性'的类型是未知的”
标签: python overloading python-typing