Object-oriented development often involves performing a significant refactoring of a class or module. It's difficult to get the API exactly right the very first time we write an application. Indeed, the design time required to get the API exactly right might get wasted: Python's flexibility permits us great latitude in making changes as we learn more about the problem domain and the user's requirements.
One of the tools that we can use to support the design evolution is the
warnings module. There are two clear use cases for
warnings and one fuzzy use case: