Is Python call-by-value or call-by-reference?

In terms of official Python documentation ,arguments are passed by assignment in Python. The actual parameters (arguments) to a function call are introduced in the local symbol table of the called function when it is called; thus, arguments are passed using call by value (where the value is always an object reference, not the value of the object). Thus, if you change the value of the parameter within a function, the change is reflected in the calling function .
def func2(a, b): a = 'new-value' # change the value of a b = b + 1 # change the value of b return a, b # return new values x, y = 'old-value', 99 # assign values to a and b x, y = func2(x, y) # function calling print (x, y ) # output: new-value 100