This article mainly introduces diagrams of Python variables and assignments. Now I share it with you and give you a reference. Come and take a look together
Python is a unique language, which is very different from the C language. Many newbies who are new to Python say they don’t understand variables and assignments. Here I will introduce it to friends who need it. For reference
Python is a unique language, which is very different from the C language. Many newbies who are new to Python say they do not understand variables and assignments. Anyone who has studied C knows that when assigning values to variables, you need to Specify the data type first, and a memory area will be opened for storing values, for example:
int a = 1;
a is a small area in the memory space, like a small box in a large room. Assignment is to load the integer 1 into the box.
Now reassign the value of variable a
a = 2;
The box is still the same box, that is to say, the memory address has not changed, but the value in the memory has changed, becoming 2.
Let’s look at it again:
int b = a;
##When assigning variable a to another A variable b is equivalent to copying the value and passing it to variable b. b is a newly opened memory area
And in Python, the strict name of "variable" is "name (name)" ” can also be understood as a label, just like our name, a name is a label attached to a person.
>>> 10-a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
For example, the error message above is that name 'a' is not defined, but is not called variable.
In Python, assigning a value to a variable is equivalent to labeling an object, just like we give names to people. The variable itself has no meaning. It has no type information, and the real information is in the object.
For example:
a = 1
Python will first allocate a memory space internally Used to create an integer object 1, and then label this 1 with the name a.
Then execute
a=2
Python will then create an integer object 2 in another memory area, and then put the label a Tear it off from 1 and stick it on 2. At this time, we can no longer get the value of 1 through a.
Now assign name a to another name b
b = a
It is equivalent to attaching a new label b to the 2 just now. Note that this is completely different from the C language. There is no need to allocate memory space when defining b, so that we can You can access 2 through a and you can access 2 through b. You are accessing the same object, just like when we name a baby with both a nickname and a big name, they actually name the same person.
Although we usually use the term "variable" in Python (because this is a common term in programming languages), we need to understand that variables in Python are different from other languages. Variables are just a name.
After understanding the variables and assignments in Python, let’s look at the parameter passing of the function, as follows:
>>> def fun_a(a):
... a = a+4
...
>>> g = 0
>>> fun_a(g)
>>> g
0
When the global variable g is passed to the function fun_a, it is equivalent to the parameter a in the function being attached to 0 as a label, and then a is reassigned (a=a 4), which is equivalent to tearing off the label a from 0 and attaching it to 4, then g is still the label above 0.
Let’s look at this function again. What is passed is a list object
>>> def fun_b(names):
... names[0] = ['x', 'y']
...
>>> n_list = ['a','b','c']
>>> fun_b(n_list)
>>>
>>> n_list
[['x','y'], 'b', 'c']
The same as the previous steps, names and n_list are both labels on ['a', 'b', 'c'], except that the 0th element in the list has been reassigned, but names and n_list are still They are all attached to this list object. Although the value of n_list has been updated, the object is still the original object. It's like Zhang San and Xiao Zhang are both the same person. Now when you change clothes for Xiao Zhang, you are actually changing clothes for Zhang San. The person is still the same person, but the things on him have changed.
Related recommendations:
Detailed explanation of the steps of Python variable assignment
Python Detailed graphic explanation of variables and assignment
The above is the detailed content of Illustration of Python variables and assignment. For more information, please follow other related articles on the PHP Chinese website!