Buch Beyound the basic stuff with Python

3. Code formatting

4. naming variables and others

names

<Verb>[<Adjektiv>]<Substantiv>[<Struktur>]
e.g. get_unanswered_questions_list

  1. Suchen und Beschaffen
    • get => compute, acquire, fetch, download, tetrieverequest (async), query
    • find/search => =! seek, search sth = in etw. suchen
    • include
    • scan => find, search
  2. Anzeigen
    • dump => (debugging)
    • render
    • show/hide (as counterparts) => display
  3. Verbinden
    • join/merge
    • append/concatenate => combine
    • combine => splice, concatenate
  4. Zerlegen
    • split => counterpart: join
    • slice, splice
  5. Umwandeln
    • parse => render, serialize
    • to_something => convert_to_something
    • invert/reverse
  6. Anfangen/Aufhören
    • start-stop/begin-end/open-close
    • pause/stop/exit
    • destruct/destroy/kill
  7. Auf- und Umräumen
    • flush
    • clear/purge
    • cleanup
    • collapse/compact => collapse-expand
    • move => =! copy
    • tidy/pretty/beautify
  8. dauerhaft machen
    • save/store/write
    • commit => (SQL)
    • bake
  9. Umkehren
    • undo-redo
    • rollback => (database)
    • restore/revert (version control)
    • recover
  10. mit Vorsicht
    • process/do/perform/deal_with/manage/change/handle/resolve
    • filter => select, find extract, reject, exclude, strip
    • check/validate/verify/test => is_valid, is_open
  11. Boolesch
    • is_done, has_error, is_valid => Verneinungen vermeiden
  12. falsche Freunde
    • actual != aktuell (= tatsächlich) => current
    • make => (Compiler)
    • number (known amount) =>digit, count (counter)
    • form == Formular => shape
    • control (continously) => check, verify
    • eventually != eventuell (= schließlich)
    • limit/border => lower_limit, upper_limit, threshold
    • faculty =! math. Fakultät => factorial
    • concurrent =! Konkurrenz (= nebenläufig)
    • address, resource, authentication => adress, ressource, authentification

5. code smells

import logging
logging.basicConfig(filename='log_filename.txt', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a log message.')

6. pythonic code

mydict.get("key", default_value)         # just read value
mydict.setdefault("key", default_value)  # in case to be used further

import collections
mydict = collection.defaultdict(int)     # every entry has default value

mydict = {"mo": "monday", "tue": "tuesday", "wed": "wednesday"}
day = mydict.get(short_day, "not known")

7. jargon

8. gotchas

9. esoteric oddities

10. effective functions

def myfunction(**kwargs):
    if kwargs.get(key) == value:
        ...