PyCharm正在显示此警告,我不知道为什么。
def record(self, *data: Sequence[Union[int, float, str]]) -> None:
for field, value in zip(self.fields, data):
if field.type in {1, 3}:
try:
value = int(value) # warning is here
except ValueError:
pass
# other logic...
这是说解包后的value
中的zip
与参数data
的类型相同,但事实并非如此。如果它是Sequence
的元素,则意味着它将是Union[int, float, str]
类型。
PyCharm是否没有意识到zip
已打开包装?
答案 0 :(得分:1)
对于每个PEP 484,类型提示适用于*data
的每个元素,而不适用于序列本身。您不需要Sequence
; *
已经隐含了。
def record(self, *data: Union[int, float, str]) -> None: