Are Python Variables References?
The notion that "variables in Python are pointers" can be misleading. To clarify this misunderstanding, let's examine two code examples:
Example 1:
i = 5 j = i j = 3 print(i)
If variables were pointers, we would expect the output to be 3. However, the actual output is 5. This is because Python variables do not store the actual value of an object but rather a reference to it.
Example 2:
i = [1,2,3] j = i i[0] = 5 print(j)
Unlike the first example, the output here is [5,2,3]. This time, changing the first element of the list bound to i also affects the list bound to j. This is because both i and j reference the same list object.
What are Python Variables Really?
To understand Python variables correctly, we must consider them as references rather than pointers. When we assign a value to a variable, we are essentially binding that variable to a particular object in memory.
The key difference between references and pointers is that references cannot be reassigned to point to a different object. Instead, they remain permanently bound to the original object.
In the examples above, i and j are references to the original int(5) and list([1,2,3]) objects, respectively. Changing the value of i does not affect j because they are both referencing different objects. However, changing the value of an element in the list affects both i and j because they are both referencing the same list object.
The above is the detailed content of Are Python Variables Pointers or References?. For more information, please follow other related articles on the PHP Chinese website!