https://danielcaraballo.es/def-en-python/