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 assignment. Anyone who has studied C knows that when assigning a value to a variable, you need to specify the data type first. At the same time, a memory area will be opened for storing values, for example:
inta =1;
a is a small area in the memory space A block area is like a small box in a large room. Assignment is to load the integer 1 into the box.
Now reassign variable a
a =2;
The box is still the same box, which means that the memory address has not changed , but the value in this memory segment has changed, becoming 2.
Look again:
intb = a;
When assigning variable a to another variable b, it is equivalent to assigning the value A copy is passed to variable b, which is a newly opened memory area
In Python, the strict name of "variable" is "name", which can also be understood as a label, that is Just like our names, a name is a label attached to a person.
For example, the error reported 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 to create the integer object 1, and then give this 1 attach a label named a.
Then execute
a=2
Python will then create an integer object 2 in another memory area, and then tear off the label a from 1 and paste it on 2. At this point, we can no longer get the value 1 through a.
Now assign the name a to another name b
b = a
is equivalent to There is a new label b just attached to 2. Note that this is completely different from the C language. There is no need to allocate memory space when defining b, so we can access 2 through a or b. 2. They are all accessing the same object, just like when we name a baby with both a nickname and a big name, they actually call 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 transfer of the function, as follows:
When the global variable g is passed to the function fun_a , which 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, and then g is still on 0 Label.
Let’s look at this function again. What is passed is a list object
It’s still 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 attached to this list object, although n_list The value is updated, but 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 tutorials: Python video tutorial
The above is the detailed content of Python learning diagram variables and assignments. For more information, please follow other related articles on the PHP Chinese website!