Understanding Python Decorators in 12 Easy Steps!
https://caniusepython3.com/
Google Style Guide for Python
Profiling Python in Production
The Elements of Python Style
Code Like a Pythonista: Idiomatic Python
Other languages have "variables", Python has "names"
Records: SQL for Humans™
Python utilities that should be builtins
Python Mocking 101: Fake It Before You Make It
An Introduction to Mocking in Python
Python Patterns - An Optimization Anecdote
If you feel the need for speed, go for built-in functions - you can't beat a loop written in C. Check the library manual for a built-in function that does what you want. If there isn't one, here are some guidelines for loop optimization:
- Rule number one: only optimize when there is a proven speed bottleneck. Only optimize the innermost loop. (This rule is independent of Python, but it doesn't hurt repeating it, since it can save a lot of work. :-)
- Small is beautiful. Given Python's hefty charges for bytecode instructions and variable look-up, it rarely pays off to add extra tests to save a little bit of work.
- Use intrinsic operations. An implied loop in map() is faster than an explicit for loop; a while loop with an explicit loop counter is even slower.
- Avoid calling functions written in Python in your inner loop. This includes lambdas. In-lining the inner loop can save a lot of time.
- Local variables are faster than globals; if you use a global constant in a loop, copy it to a local variable before the loop. And in Python, function names (global or built-in) are also global constants!
- Try to use map(), filter() or reduce() to replace an explicit for loop, but only if you can use a built-in function: map with a built-in function beats for loop, but a for loop with in-line code beats map with a lambda function!
- Check your algorithms for quadratic behavior. But notice that a more complex algorithm only pays off for large N - for small N, the complexity doesn't pay off. In our case, 256 turned out to be small enough that the simpler version was still a tad faster. Your mileage may vary - this is worth investigating.
- And last but not least: collect data. Python's excellent profile module can quickly show the bottleneck in your code. if you're considering different versions of an algorithm, test it in a tight loop using the time.clock() function.
JavaScript-Style Objects in Python
Fast non-standard data structures for Python http://t.co/mzh7sfadYj
— Anna Nachesa (@ashalynd) December 17, 2014
Problem Solving with Algorithms and Data Structures Using Python
Flask: Python Microframework
Cinema 3 - (Extremely Simplified) Example of Microservices in Python using Flask
Requests:Python HTTP for Humans
Celery: Distributed Task Queue
No comments:
Post a Comment