.. ještě takhle, pokud chceme dekorovat jen pro dekorování, můžeme si
vytvořit jediný dekorátor, který bude brát argument.
tento dekorátor bude funkci udělovat dekorace to "tajného" atributu
třeba _mydecor

def decorate(decoration):
    def do_decor(func):
        if hasattr(func, '_mydecor'):
            func._mydecor.add(decoration)
        else:
            func._mydecor = set([decoration])
        return func
    return do_decor

def isDecorated(func, decoration):
    return (decoration in getattr(func, '_mydecor', set()))

@decorate('red')
@decorate('green')
def orangefunc(): pass

print isDecorated(orangefunc, 'green') # -> True
print isDecorated(orangefunc, 'blue')  # -> False
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem