אפשר להתעלם מחלק מהשגיאות ? יש שגיאות שזה מציין שהן לא באמת שגיאות.
הן כנראה כן באמת שגיאות
אוקיי , אז למשל אני השתמשתי בפתרון הראשון כאן
כדי לתת טייפ לאינסטנסים של קלאסס מסוימת.
אז mypy רואה את זה כשגיאה :
pieces/piece.py:30: error: Name 'Board' is not defined
או למשל :
if st[0] in final_letters_dict and len(st) > 1:
st = final_letters_dict.get(st[0]) + st[1:]
עשיתי כאן “איבטוח” שלא יהיה מצב ש final_letters_dict.get(st[0]) יהיה שווה לNone וגם ש st[1:] לא יהיה None
עדיין הmypy רואה את זה כטעות.
translate_book.py:82: error: Unsupported left operand type for + ("None")
translate_book.py:82: note: Left operand is of type "Optional[str]"
ועוד ועוד. אני מקבל המון דברים כאלו.
כמובן, Board אכן לא מוגדר בתוך המחלקה. mypy צודק. יש לזה פתרון, מצא אותו בגוגל
זו אכן טעות.
החתימה של get טוענת שהוא יכול להחזיר None, ולכן mypy צועקת.
אם זה לא אפשרי, בצע final_letters[st[0]]
, שזורק KeyError
ולא מחזיר None
במקרה שה־Key לא קיים.
גם השאר הם ככה"נ טעויות, פשוט צריך ללמוד לעבוד עם זה
המטרה של mypy היא למנוע שגיאות בקוד שלך, ולכן היא קשוחה ומוודאת לעומק שאין מקומות שיש סיכוי שנפלת בהם.
2 לייקים