README.md 1.1 KB

python_notes

Just notes on various things

Naming Notes

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

Comments

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

docstrings

Use 'em. See PEP257 - https://www.python.org/dev/peps/pep-0257

ArgParse

Interesting Tidbits

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)

Caching

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)