https://mysteryweevil.medium.com/mastering-polymorphism-with-function-parameters-in-python-e774a8fc0462