However, there are no literals in Python. Everything (integers, strings, float, objects, functions and so forth .. ) in Python are objects themselves. These objects are called ‘first class’ objects. Therefore, it is incorrect to state that a copy of literals is passed to the function’s local scope. An example demonstration of said ‘first class’ objects:
The object  is an integer object in the memory with a unique id. The id() function is practically the same as the ‘address of operator’ (&) in the glorious C programming language.
But since the memory is managed by Python, the address in which the object resides is abstracted to a unique id. Python automatically maps these unique ids to the actual memory location.
The code below is showing checking whether the type of the object  is integer (i.e. an integer object).
Creating a pointer named [a] pointing to the object .
Confirming that the object to which pointer [a] points to is of the int class.
The lines below are confirmations that pointer [a] indeed points to the number