In general, functions in Python may also have side effects rather than just turning an input into an output. The print() function is a basic example of this: it returns None while having the side effect of outputting something to the console. However, to understand decorators, it is enough to think about functions as something that turns given arguments into a value.
There is general agreement that syntactic support is desirable to the current state of affairs. Guido mentioned syntactic support for decorators [2] in his DevDay keynote presentation at the 10th Python Conference [3], though he later said [5] it was only one of several extensions he proposed there "semi-jokingly". Michael Hudson raised the topic [4] on python-dev shortly after the conference, attributing the initial bracketed syntax to an earlier proposal on comp.lang.python by Gareth McCaughan [6].
Modifying classes in this fashion is also possible, though the benefits are not as immediately apparent. Almost certainly, anything which could be done with class decorators could be done using metaclasses, but using metaclasses is sufficiently obscure that there is some attraction to having an easier way to make simple modifications to classes. For Python 2.4, only function/method decorators are being added.
In this snippet we have a class hierarchy with a SimpleMessage at the top. The SimpleMessage class has a constructor that accepts a content string as well as two methods: GetMessage; and, PrintMessage. Down the hierarchy we have three subclasses: ExcitedMessage; QuizzicalMessage; and, ExcitedAndQuizzicalMessage. The only difference in the subclasses is that they override the SimpleMessage constructor to change the content string and append various exclamations. When we instantiate various message objects, using the same content string, and iterate over them, each has their own unique output.
I am a fully qualified painter and decorator and pride myself on offering a hassle free and affordable service where the customer’s needs always take priority, as do excellent quality workmanship and operating to modern standards. We are confident that we can meet all your requirements on your next painting and decorating project and also exceed your expectations when it comes to quality and affordable painters and decorators in Crook.
More recently, professional painters are responsible for all preparation prior to painting. All scraping, sanding, wallpaper removal, caulking, drywall or wood repair, patching, stain removal, filling nail holes or any defects with plaster or putty, cleaning, taping, preparation and priming are considered to be done by the professional contracted painter.
By downloading this trial product, you agree to receive marketing communications from us and/or our suppliers. You may opt-out of receiving such future emails by clicking the unsubscribe link in any email you receive, or by signing into your Corel account through our website using your email address and password, and clicking on Manage Your Communication Preferences.
×