פייתון/פייתון גרסה 3/משתנים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Mathreturn (שיחה | תרומות)
Mathreturn (שיחה | תרומות)
שורה 95:
==פעולה ארוכה==
{{#lsth:פייתון/פייתון גרסה 2/במקום משתנים - עצמים ושמות|קישור בו-זמני}}
 
==העתקים==
#העתק עמוק (deep copy) - למשתנה המועתק יש '''מיקום''' זיכרון משל עצמו. שינויים שבוצעו על המשתנה לא ישפיעו על המקור.
#העתק רדוד (shadow copy)- המשתנה החדש מאוחסן באותו תא זכרון של המשתנה המקורי ועל כן שינוים במשתנה החדש ישפיעו על המשתנה המקורי.
 
 
בכדי לדעת האם מדובר בהעתק עמוק או רדוד נעזר בפונקציית id שמחזירה את "מקום הזיכרון".
 
מבחינת משתנים: השמה שומרת על כתובת המשתנה לעומת הצהרה המייצרת משתנה חדש בעל אותו העתק.
 
נעזר בדוגמה שגם ממחישה את ההבדלים בין אופרטור <code> == </code> לעומת <code> is </code>
 
<source lang = "python">
#Declaration - creat a new variable
>>> a=400
>>> b=400
>>> id(a)
89043264
>>> id(b)
89043920
 
# == vs is
>>> a==b
True
>>> a is b
False
 
# Assigning
>>> x=23423
>>> y=x
>>> id(x)
103332672
>>> id(y)
103332672
 
# == vs is
>>> x is y
True
>>> x ==y
True
</source>
 
שמו לב שפייתון מאחסנת מספרים נמוכים באותה כתובת ולכן עלולים להתבלבל בין סוגי העתקים:
<source lang = "python">
 
>>> a=1
>>> b=1
>>> id(a)
1573705520
>>> id(b)
1573705520
>>> a==b
True
>>> a is b
True
</source>
 
==ראה גם==