פייתון/במקום משתנים - עצמים ושמות
מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.
על מנת שתכנית תוכל לשמור מידע (לדוגמה מקלט), לעבד מידע בחישובים מתמטיים, או לקבל החלטות על סמך מידע, יש לעתים צורך בנתינת שמות למידע.
תוכן עניינים |
[עריכה] עצמים
מהם עצמים? קשה לענות על כך. ראשית יש צורך בידע בתכנות מונחה עצמים, ופייתון מגדירה זאת בגמישות רבה אפילו יחסית לתחום. במקום להגדיר מהם עצמים, לכן, הבה נציין עצמים שכבר פגשנו:
בהמשך הקרוב נראה עוד עצמים:
[עריכה] קישור שמות לעצמים
פייתון מאפשרת לקשר שם לעצם, לדוגמה כך:
>>> a = 2
כעת מקושר השם a למשתנה 2. בכל מקום בו אנו יכולים להשתמש בערך 2, נוכל גם להשתמש בשמו החדש, a. לדוגמה:
>>> a + 3 5 >>> 2 * a + 5 9
אפשר לקשר יותר משם אחד לאותו עצם. לדוגמה:
>>> a = 2
>>> b = a
a הוא שם לעצם 2, ו-b הוא שם לעצם של a, כלומר גם כן 2.
לאחר ששם נקשר לעצם, אפשר לקשור אותו לעצם אחר. השם מפסיק להיות שמו של העצם הקודם, ועובר להיות שמו של העצם הבא. לדוגמה:
>>> a = 2 >>> a = 3
תחילה a הוא שמו של 2, ולאחר מכן עובר a להיות שמו של 3. אפשר לחזור על כך מספר בלתי מוגבל של פעמים. בכל מקרה, שם יכול להיות מקושר לעצם יחיד. אין אפילו מניעה להעביר את קישורו של שם מעצם מסוג אחד לעצם מסוג אחר. לדוגמה:
>>> a = 2 >>> a = 'hello'
תחילה a הוא שמו של 2 (שהוא מספר), ולאחר מכן עובר a להיות שמו של 'hello' (שהיא מחרוזת).
[עריכה] דוגמה: "קידום" שם
לאחר הרצת השורות הבאות, מה יהיה ערכו של b?
>>> a = 2 >>> b = a >>> a = a + 1
הפתרון
נקליד ונבדוק:
>>> b
2
תחילה a הוא שמו של 2, וגם b הוא ערכו של 2. לאחר מכן נהיה a ערכו של 3. הדבר אינו משפיע כלל על השם b.
[עריכה] קישור בו-זמני
פייתון מאפשרת לקשר בו-זמנית מספר שמות לעצמים, לדוגמה כך:
>>> a, b, c = 2, 3, 4
יכולת זו מאפשרת לבצע דברים נחמדים, כמו החלפה בין שמות. לדוגמה:
>>> a = 2 >>> b = 3 >>> a, b = b, a
השורה הראשונה מקשרת בין השם a לעצם 2, השורה השניה מקשרת בין השם b לעצם 3, והשורה השלישית מקשרת בין a ו-b לבין העצמים של השמות b ו-a, ולכן למעשה מחליפה בין השמות. נוכל לבדוק זאת:
>>> a 3 >>> b 2
נדון בכך לעומק כאשר נדבר על n-יות וקישורים.
[עריכה] "משתנים"
לפעמים אומרים על שמות המקושרים לעצמים שהם משתנים. חשוב להבהיר מושג זה, שכן "משתנים" בפייתון אינם דומים למשתנים בשפות אחרות (לדוגמה שפת C):
- משתנה שפת C הוא כמעין תיבה שאפשר להכניס אליה ערך בכל פעם. ה"תיבה" קיימת בלי קשר לשאלה האם כלל הוכנס אליה ערך.
- "משתנה" פייתון הוא שם שנותנים לעצם. בלי העצם, אין למה לתת שם, וממילא אין "משתנה".
אין בפייתון, למעשה, משתנים - המושג נדד לפייתון משפות אחרות [1].
[עריכה] העצם None
None הוא עצם מיוחד המציין "כלום". להלן דוגמה אפשרית לשימוש בו
grade = None # Do some stuff ... if grade != None: print 'Your grade is', grade else: print 'Your grade is not in the system yet'
שימוש נוסף (וקשור) בNone הוא בכל מקום בו היינו משתמשים ב-NULL בשפת C וב-NIL בפסקל. הנה דוגמה לקוד המתפעל חוליה של רשימה מקושרת:
l = link() l.value = 0 l.next = None
[עריכה] מרחב השמות (namespace)
פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיספר ולהשלים אותו. ראו פירוט בדף השיחה.
[עריכה] קישורים חיצוניים
| הפרק הקודם: המרות בין מספרים לעצמם ומחרוזות |
במקום משתנים - עצמים ושמות | הפרק הבא: קלט ופלט |

