[Python-Dev] Re: __metaclass__ and __author__ are already decorators
Paul Morrow
pm_mon at yahoo.com
Sun Aug 22 00:54:28 CEST 2004
Bob Ippolito wrote:
>
> On Aug 21, 2004, at 6:24 PM, Paul Morrow wrote:
>
>>
>> It seems that writing a decorator is going to be a bizarre experience.
>> In the example, I would need to write a function named 'decoration'
>> that returns a function that will recieve a function (foo) to be
>> decorated and then return a function. Does that sound about right?
>
>
> Yes that is correct.
>
>> What would functions like 'decoration' typically look like? Could you
>> show a short code snippet?
>
>
> http://python.org/peps/pep-0318.html
>
Thanks. Of the 5 examples there, the first two are apparently not
implemented correctly, as they expect that the function/class to be
decorated is passed directly to them, rather than to the function they
return. Would you agree? I pasted them here for your consideration...
1. Define a function to be executed at exit. Note that the function
isn't actually "wrapped" in the usual sense.
def onexit(f):
import atexit
atexit.register(f)
return f
@onexit
def func():
...
2. Define a class with a singleton instance. Note that once the
class disappears enterprising programmers would have to be more creative
to create more instances. (From Shane Hathaway on python-dev.)
def singleton(cls):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return getinstance
@singleton
class MyClass:
...
More information about the Python-Dev
mailing list