Home > Backend Development > Python Tutorial > Are Python Variables Pointers or References?

Are Python Variables Pointers or References?

Mary-Kate Olsen
Release: 2024-12-05 05:20:09
Original
505 people have browsed it

Are Python Variables Pointers or References?

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)
Copy after login

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)
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template