[python] jak zjistit, jestli je metoda dekorovaná

Jirka Vejrazka jirka.vejrazka na gmail.com
Pondělí Červenec 28 16:42:40 CEST 2008


Zkusil jsem si s tim pohrat a dostal jsem se k tomu, ze nedokazu
zjistit obecny dekorator, musi tam ten dekorator ulozit "znacku",
podle ktereho se pak jeho pouziti pozna. Viz priklad (jiste neni
idealni)

...modul.py...

def dekorator(func):
    def new_func(*args, **kwargs):
        func.dekorator_pouzit = True
        return func
    return new_func(func)

@dekorator
def test_func(a, b):
    print a + b

if __name__ == '__main__':
    test_func(5, 6)

...jadro.py...

import modul

for obj in modul.__dict__:
    if hasattr(modul.__dict__[obj], 'dekorator_pouzit'):
        print obj


Vic neporadim

   Jirka


Další informace o konferenci Python