Sal*_*lih 3 python type-hinting
对于以下代码,PyCharm 显示 'Expected 'Tuple[str, str]', got 'Tuple[None, None]' instead.
def process(self) -> Tuple[str, str]:
error_message = None
report_type = None
report_type_set = set()
if not self.config_form.cleaned_data['type_check']:
return report_type, error_message
else:
report_type, error_message = self._get_valid_value(report_type_set)
return report_type, error_message
Run Code Online (Sandbox Code Playgroud)
该方法并不总是返回 None,正如您在else块中看到的[该方法_get_valid_value确保我们返回和] 的str值。那么,我该如何克服这个警告呢?report_typeerror_message
有没有办法在提示中指定它可以是 str 或 None ?
使用Tuple[str, str],您表示此方法始终返回一个字符串元组。
相反,您可以使用:
def process(self) -> Tuple[Optional[str], Optional[str]]:
或者:
def process(self) -> Tuple[Union[str, None], Union[str, None]]: