From Python's documentation, I could not understand if arguments are passed by reference or passed by assignment. So, I wrote a simple piece of code to verify it.
def swap(first_number, second_number):
first_number, second_number = second_number, first_number
if __name__ == '__main__':
a, b = 4, 5
swap(a, b)
print(a, b)
Now, the output is 4, 5
here. After studying a bit, I realized that in swap()
function's body, first_number, and second_number are again declared. I could not get around it as I come from a C++ background. So, how do I make the above code work without returning a value?
In C++ I simply write:
void swap_overloaded(unsigned int& first_number, unsigned int &second_number) {
first_number = first_number ^ second_number;
second_number = second_number ^ first_number;
first_number = first_number ^ second_number;
}
How do I achieve this in python?