לא נראה לי שהבנתי את הרעיון שעומד מאוחרי generator

תגיות:

היי לכולם.ן,

נירה לי שלא הבנתי את הרעיון שעומד מאוחרי GENERATOR ואיך ומתי ולמה להשתמש בזה.
אשמח להכוונה לחומר שמסביר בצורה עמוקה יותר על הפונקציה.
שאלתי את גברת גוגל ולא מצאתי משהוא שבמאת עוזר לי להבין את זה.

תודה מראש לכולם.ן :slight_smile:

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

נראה לי ההסבר הזה יעשה את העבודה יותר טוב ממני:

2 לייקים

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

כלומר אתה משתמש בזה ברגע שמוגדרת לך פעולה שאתה יודע מה היא רוצה לעשות אולם כל פעם אתה רוצה לעשות אותה פעם אחת. במקרה הזה כי שילמו לך אבל בגדול זה יעבור עבור כל מקרה שתגדיר לתוכנה שלך :slight_smile:

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

עריכה: יש כמובן עוד יתרונות, כמו למשל שזה זוכר איפה זה נמצא אחרי כל פעולה וכו … אבל זה כבר כתוב במחברת ושווה לעבור על זה

image

4 לייקים

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

4 לייקים

image

לייק 1