When using Pycharm, It often points out an error, saying:

> 
> Unresolved reference 'name'. This inspection detects names that should
>  resolve but don't. *Due to dynamic dispatch and duck typing*, this is
>  possible in a limited but useful number of cases. Top-level and
>  class-level items are supported better than instance items.
> 
> 
> 

I've snooped around about this, but most questions and information I find is about preventing the message from being shown. what I want to know is:

* What is dynamic dispatch/duck typing?
* What are (or an example of) these "useful number of cases"?