Just notes on various things
Classes use CamelCaps Functions and varibles are lowercase() or lowercase_with_underscores().
Always use self for the first argument to instance methods. Always use cls for the first argument to class methods
Block comments are at the same indentation and are complete sentences. Inline comments shouldn't state the obvious.
Avoid:
x = x + 1 # Increment x
But this can be useful:
x = x + 1 # Compensate for the border
Use 'em. See PEP257 - https://www.python.org/dev/peps/pep-0257
Redirect stdout to a file. The with
isolates context and prevents certain race conditions, handling errors appropriately.
with open('help.txt', 'w') as f:
with redirect_stdout(f):
help(pow)
If you have a function that always returns the same result for a given input, you can cache the result by prefacing with @lru_cache
. e.g.
from functools import lru_cache
@lru_cache(maxsize=32)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)