לומד ללכת בדרכי הטייפינג


מישהו יכול להסביר לי את הפונקציה?

לייק 1

לא רואים את כל הקוד…
אתה יכול לעלות את זה כקוד
ולא כתמונה?

https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html#standard-duck-types
החלק שכאן זה הקוד

Ok
אז בעיקרון בפעם הראשונה
הפונקציה מקבלת מילון ומוסיפה לו עוד איבר עם מפתח 5 וערך אולי. אמורה להחזיר רק את המפתחות
(3 4 5) בצורת רשימה… אבל זה יתן שגיאה. כי למעשה אתה רוצה את הערכים ולא את המפתחות.

ולכן הפונקציה השנייה מקבלת מילון מוסיפה איבר
אבל מחזירה סט של רק הערכים (כן לא אולי)
הסט הוא סט של מחרוזת… וזה תקין
ולא תהיה שגיאה

איזה חלק היה פחות מובן בעינייך? :slight_smile:

mapping לא היה מובן לי…
והאמת שגם הפעולה של הפונקציה עצמה הייתה מוזרה לי לגמרי

למה מוזרה?
השורה הראשונה יוצרת מפתח חדש שערכו 5, והערך שלו הוא maybe.
השורה השנייה: בפונקציה הראשונה מחזירה את כל מפתחות המילון כרשימה, בפונקציה השנייה מחזירה את כל ערכי המילון כ־Set.

הטיפוס Mapping בא לציין משהו שממפה מפתח לערך, אבל לא בהכרח Dict – נניח, collections.Counter.
הטיפוס MutableMapping בא לציין משהו שממפה מפתח לערך ואפשר להוסיף לו ערכים ולשנות אותם.

יש עוד הבדלים שמופיעים בדוקומנטציה של פייתון.

לייק 1

אקרא על זה עוד קצת לאחר שחמט… תודה רבה לך ים על הזמן!

לייק 1