When having a conversation, particularly one with any complexity, it’s helpful if everyone in the conversation has the same context. It would be difficult to have conversations if every time someone began a new sentence they had to present the full context of the conversation.
From the standpoint of software functions, the context is the current state of the information the functions are working with. In the previous chapter, we talked about creating function signatures where the data state is passed around to the function calls in consistent ways.
Utilizing function signatures is a useful and powerful way to conduct conversations between functions that work on stateful data. It becomes a little more complicated if the same functions are being passed multiple, distinct stateful data contexts. The data and the functions that work on that data are separate from each other, and it’s up to the developer to keep them organized and connected. Python provides another layer of abstraction to reduce complexity by using the object-oriented programming model.