In programming, there are two ways in which arguments can be passed to functions:
- Pass by value
- Pass by reference
Some languages use pass by value by default while others use pass by reference. Some languages support both and allow you to choose.
In Python, we don’t have to think about pass by value and pass by reference as it does that automatically for you. To emulate this using Python, we use the concept of mutability. If the argument passed is immutable then it follows pass by value, else if the argument passed is mutable then it follows pass by reference.
Note: Till now we have seen int, float, string data types which immutable and mutable data types we will discuss in later part of the topics.
Pass by reference method
Pass by reference case apply on mutable type values, In this case value pass as reference to a method in case any change done with in function will reflect out side the function also. From below example you will see formal and actual argument point to same data location because of reference value.
Pass by value method
Pass by value case apply on immutable variables/arguments in case value change with in the function then changes done on function will not reflect out side of the method. From the below example you will see the storage of formal and actual argument are separate.