1) Data Model
“dunder methods” or data model methods
top level syntax have corresponding data model methods
2) Adding an assert at the start of the module to make sure that methods exist. Derived class enforce a constraint on the base class.
try-catch only appears on run-time, so its a bad idea
Every statement is an executable piece of code
2) Protocol orientated language
Python is pass by assignment