は、コードサンプルを、次の点を考慮使用したにもかかわらず:mypyエラー - 互換性のない型 '連合
error: Argument 1 to "get_square" has incompatible type "Union[str, bool, int]"; expected "int"
と私はわからない:このコードに対してmypyを実行する場合
from typing import Dict, Union
def count_chars(string) -> Dict[str, Union[str, bool, int]]:
result = {} # type: Dict[str, Union[str, bool, int]]
if isinstance(string, str) is False:
result["success"] = False
result["message"] = "Inavlid argument"
else:
result["success"] = True
result["result"] = len(string)
return result
def get_square(integer: int) -> int:
return integer * integer
def validate_str(string: str) -> bool:
check_count = count_chars(string)
if check_count["success"] is False:
print(check_count["message"])
return False
str_len_square = get_square(check_count["result"])
return bool(str_len_square > 42)
result = validate_str("Lorem ipsum")
、次のエラーが返されます最初の関数で返される型としてDict[str, Any]
を使用せずにこのエラーを回避する方法、または 'TypedDict' mypy拡張をインストールする方法。 mypyは実際には「正しい」ですか、私のコードはタイプセーフではありませんか、これはmypyのバグと見なされるべきですか?
あなたは本当のマイパイの専門家マイケルです、多くの感謝! –