https://medium.com/@myarticle82/how-passing-immutable-data-types-to-a-python-function-gives-them-the-illusion-of-pass-by-value-b43e1870ed52