advanced programming techniques and operator modules this section also shows how to use partial function application to simplify codeand how to create and use coroutines all the previous put together have provided us with the "standard python toolboxthis takes everything that we have already covered and turns it into the "deluxe python toolbox"with all the original tools (techniques and syntaxes)plus many new ones that can make our programming easiershorterand more effective some of the tools can have interchangeable usesfor examplesome jobs can be done using either class decorator or metaclasswhereas otherssuch as descriptorscan be used in multiple ways to achieve different effects some of the tools covered herefor examplecontext managerswe will use all the timeand others will remain ready at hand for those particular situations for which they are the perfect solution ||further procedural programming most of this section deals with additional facilities relating to procedural programming and functionsbut the very first subsection is different in that it presents useful programming technique based on what we already covered without introducing any new syntax |branching using dictionaries as we noted earlierfunctions are objects like everything else in pythonand function' name is an object reference that refers to the function if we write function' name without parenthesespython knows we mean the object referenceand we can pass such object references around just like any others we can use this fact to replace if statements that have lots of elif clauses with single function call in we will review an interactive console program called dvds-dbm pythat has the following menu( )dd ( )dit ( )ist ( )emove ( )mport ( )port ( )uit the program has function that gets the user' choice and which will return only valid choicein this case one of " "" "" "" "" "" "and "qhere are two equivalent code snippets for calling the relevant function based on the user' choiceif action =" "add_dvd(dbelif action =" "edit_dvd(db