In Python, function arguments are always passed by reference. This can be verified by checking id() of factual, formal arguments and returned object
def foo(x):
print ("id of received argument",id(x))
x.append("20")
return x
a = ["10"]
print ("id of argument before calling function",id(a))
b = foo(a)
print ("id of returned object",id(b))
print (b)
print (a)The id() of a, x inside foo() and b are found to be same.
id of argument before calling function 1475589299912 id of received argument 1475589299912 id of returned object 1475589299912