170 likes | 175 Vues
Chapter 8 Namespaces and Memory Realities. Intro to Computer Science CS1510 Dr. Sarah Diesburg. Questions. Any questions over yesterday’s lab? Any questions over PA08. Namespaces. You can think of a namespace as where a name is valid and can be used
E N D
Chapter 8Namespaces and Memory Realities Intro to Computer Science CS1510 Dr. Sarah Diesburg
Questions • Any questions over yesterday’s lab? • Any questions over PA08
Namespaces • You can think of a namespace as where a name is valid and can be used • Two functions can use a variable with the same name. These are two separate variables. • Let me show you a short demo. • Explaining the “separate ” part requires a bit more explanation
How Python stores information(HEAVY) • Objects are Python’s abstraction for data. • All data in a Python program is represented by objects or by relations between objects. • Every object has: • an identity (Where it is in memory. Unchangeable) • a type (How to interpret memory. Unchangeable) • a value (What is in memory. May (not) be changeable)
Reminder: Assignment • Assignment takes an object (the final object after all operations) from the right-hand-side and associates it with a variable on the left-hand side. • When you assign one variable to another, you share the association with the same object.
Immutables • Object sharing, two variables associated with the same object, is not a problem since the object cannot be changed. • Any changes that occur generate a new object.
Mutability Changes an Object • If two variables associate with the same object, then both reflect any change to that object.
Copying If we copy, does that solve the problem? myLst = [1, 2, 3] newLst = myLst[:]
The Problem is What Gets Copied… • The elements of the list are copied, but sometimes the elements of the list themselves are references (or associations). • If the list has nested lists or uses other associations, the association gets copied. This is termed a shallow copy.