https://levelup.gitconnected.com/python-features-you-probably-dont-know-about-but-should-a66c6b30c528