Functional programming is a complex topic in Python, but here are simple rules, that anyone can stick to and write more reliable and readable functions from my 4y+ experience:
- Write type annotations.
- Do not mutate input data.
- Use less classes.
That's it!
P.S. Yes, there are standard and 3rd party libraries which can enhance productivity, but see tips above as a general rule and common ground.