MICROSOFT LOGO
MICROSOFT LOGO
קורס Python - רמיזות טיפוס (Type Hinting) והקלדה סטטית (Static Typing) בפייתון

קורס Python – רמיזות טיפוס (Type Hinting) והקלדה סטטית (Static Typing) בפייתון

פייתון היא שפה עם טיפוסים דינמיים – כלומר, סוגי המשתנים נבדקים בזמן ריצה, ואין להם טיפוס קבוע מראש. עם זאת, ככל שפרויקטים בפייתון גדלים, רמיזות טיפוס הפכו לכלי חשוב לשיפור בהירות הקוד ולתמיכה בכלים לבדיקות סטטיות.
carmel website
carmel-website
carmel-website

פייתון היא שפה עם טיפוסים דינמיים – כלומר, סוגי המשתנים נבדקים בזמן ריצה, ואין להם טיפוס קבוע מראש.
עם זאת, ככל שפרויקטים בפייתון גדלים, רמיזות טיפוס הפכו לכלי חשוב לשיפור בהירות הקוד ולתמיכה בכלים לבדיקות סטטיות.

רמיזות הטיפוס הוכנסו בפייתון 3.5 באמצעות PEP 484, ומאפשרות לציין סוגים צפויים עבור:

  • פרמטרים של פונקציות
  • ערכי החזרה מפונקציות
  • משתנים
  • שדות במחלקות

רמיזות הטיפוס אינן נאכפות בזמן ריצה על ידי פייתון – הן למעשה משמשות כהערות עבור המתורגמן.
אבל כלים כמו בודקי טיפוסים (למשל mypy), סורקים (linters), ועורכי קוד (IDEs) יכולים להשתמש בהן כדי לזהות שגיאות טיפוס עוד לפני הרצת הקוד.

תחביר בסיסי

ניתן להוסיף רמיזות טיפוס בהגדרת פונקציה כך:

רמיזות טיפוס (Type Hinting) והקלדה סטטית (Static Typing) בפייתון
 

בדוגמה הזו, name: str מציין ש־name אמור להיות מסוג מחרוזת (string), ו־-> str מציין שהפונקציה מחזירה מחרוזת.
בזמן ריצה, קריאה ל־greet(5) לא תגרום לשגיאת TypeError, כי פייתון לא אוכפת את הטיפוסים בפועל, אך בודק טיפוסים סטטי כן יזהה את זה כתקלה אפשרית.

רמיזות טיפוס למשתנים ושדות במחלקות

PEP 526 הציג תחביר חדש להוספת רמיזות טיפוס למשתנים:

python

age: int = 42

זה לא מגביל את המשתנה age להיות באמת int (אפשר עדיין לבצע age = "forty-two" בזמן ריצה),
אבל זה משמש כתיעוד, וכלי בדיקה יוכלו לאתר טעויות בהתאם.

המודול typing

המודול typing בפייתון מספק מגוון עשיר של טיפוסים למבנים מורכבים יותר:

  • טיפוסים גנריים ומבני נתונים: לדוגמה
    List[int], Dict[str, float], Tuple[int, str] – מאפשרים לציין את סוגי האיברים בתוך מבנים.
    (בפייתון 3.9 ואילך ניתן להשתמש בטיפוסים המובנים ישירות: list[int] במקום List[int]).
  • טיפוס אופציונלי:
    Optional[X] (או התחביר החדש X | None) מציין שערך יכול להיות מסוג X או None.
  • איחוד טיפוסים:
    Union[X, Y] (או X | Y בגרסה 3.10+) מציין שערך יכול להיות מסוג X או מסוג Y.
  • כינויים לטיפוסים:
    ניתן ליצור שם מקוצר לטיפוס מורכב, לדוגמה:
    Coordinate = Tuple[float, float]
  • טיפוסי פונקציות:
    Callable[[ArgType1, ArgType2], ReturnType] – מתאר את החתימה של פונקציה.
  • משתני טיפוס:
    מאפשרים לכתוב פונקציות או מחלקות גנריות – שמקבלות טיפוס כלשהו ומחזירות אותו, לדוגמה T.
  • מחלקות פרוטוקול (Protocol classes – לפי PEP 544):
    תומכות ב־duck typing עם בדיקות סטטיות – מאפשר לבדוק אם מחלקה תואמת לפרוטוקול מסוים מבלי לרשת אותו בפועל.

שימוש ברמיזות טיפוס יכול לשפר בצורה משמעותית את התחזוקה של קוד בפרויקטים גדולים.
כלים כמו mypy (בודק טיפוסים סטטי), Pyright / Pylance (ב־VSCode), או בדיקות הקוד של PyCharm,
יכולים לזהות אי-התאמות בטיפוסים, החזרות חסרות, שגיאות תחביר הקשורות לטיפוסים ועוד – על בסיס האנוטציות הללו.

בנוסף, רמיזות טיפוס משמשות גם כתיעוד קריא עבור בני אדם,
ומבהירות את הכוונה בשימוש בפונקציות, מחלקות, ושדות.

דוגמה – שימוש ברמיזות טיפוס עם מחלקות נתונים

הדקורטור @dataclass (מהמודול dataclasses שהתווסף בפייתון 3.7+) מאפשר ליצור מחלקות שנועדו לאחסן נתונים.
הוא נשען במידה רבה על רמיזות טיפוס לצורך הגדרת השדות:

רמיזות טיפוס (Type Hinting) והקלדה סטטית (Static Typing) בפייתון
 

תוכן עניינים

מלאו פרטים ונחזור אליכם בהקדם
למדו מהמומחים שלנו
קורסים נוספים
למה לבחור בכרמל הדרכה?
אנחנו מציעים פתרונות איכותיים להדרכות מקצועיות שחוסכות לכם זמן ומשאבים, ומספקים לכם את הכלים לקחת את הכישורים שלכם צעד קדימה!
carmel website
מרצים מובילים

בעלי ניסיון הדרכתי
ומעשי עשיר

carmel website
מגיעים אליכם

אתם קובעים את
מיקום הקורס והמועד

carmel website
תאוריה ותרגול

חומרי לימוד ומעבדות
רשמיות של מיקרוסופט הזמינים בענן

carmel website
תוכנית מותאמת

התאמה מלאה ואישית
לדרישות ולצרכי הארגון

מתחיל ב-09.06.2025

4 מפגשים

09:00-16:00
דילוג לתוכן