Python parameter Passing Description:
The argument is passed, and the address is passed. A constant amount is defined, and the compiler's assigned address is fixed and its contents immutable.
This diagram illustrates:
Constants (shaping, floating-point content), defined for a moment, are fixed in the memory address and the contents are immutable. If you reassign a different value, the compiler assigns a new address to it.
When the function foo is called, the variable x, y of the function itself points to the address passed in, and once X, Y is re-assigned, the address of X, Y is changed, with no relation to the external x, Y.
Since z is a mutable object, which is equivalent to a container whose contents are mutable and the contents of the container are changed in a volume of Foo, it is equivalent to changing the variable that points to the container.
Understanding of the Python parameter passing