I've seen the functions called poll and invoke used in scripts. I'm curious what these are for and when they are called.
For a comprehensive description of operators and their use see: https://docs.blender.org/api/current/bpy.types.Operator.html
For a quick run-down
poll, checked before running the operator, which will never run when poll fails, used to check if an operator can run, menu items will be greyed out and if key bindings should be ignored.
invoke, Think of this as "run by a person". Called by default when accessed from a key binding and menu, this takes the current context - mouse location, used for interactive operations such as dragging & drawing. *
executeThis runs the operator, assuming values are set by the caller (else use defaults), this is used for undo/redo, and executing operators from Python.
drawcalled to draw options, typically in the tool-bar. Without this, options will draw in the order they are defined. This gives you control over the layout.
modalthis is used for operators which continuously run, eg: fly mode, knife tool, circle select are all examples of modal operators. Modal operators can handle events which would normally access other operators, they keep running until they return
cancel- called when Blender cancels a
modaloperator, not used often. Internal cleanup can be done here if needed.
* - note, button layouts may set the context of operators to invoke or execute. See: https://docs.blender.org/api/current/bpy.types.UILayout.html#bpy.types.UILayout.operator_context