- Destructors in Python are not guaranteed to run.
__del__ (finalizer; when garbage collector garbage collects)
- Duck Typing: if an object has the requested method, a call to it will just work
- “If it quacks like a duck, then it must be a duck”
- Checking if not
None, obj is not None
arr += [9] is the same as arr.append(9), but not the same as arr = arr + [9]
- Dictionaries have a separate array that keeps track of insertion order