inspect feature

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Thu Oct 9 04:48:22 EDT 2008


Aaron "Castironpi" Brady a écrit :
> Hello,
> 
> The 'inspect' module has this method:
> 
> inspect.getargvalues(frame)
> 
> It takes a frame and returns the parameters used to call it, including
> the locals as defined in the frame, as shown.
> 
>>>> def f( a, b, d= None, *c, **e ):
> ...     import inspect
> ...     return inspect.getargvalues( inspect.currentframe() )
> ...
>>>> f( 0, 1, 'abc', 'def', ( 3, 2 ), h= 'ghi' )
> (['a', 'b', 'd'], 'c', 'e', {'a': 0, 'c': ('def', (3, 2)), 'b': 1,
> 'e': {'h': 'g
> hi'}, 'd': 'abc', 'inspect': <module 'inspect' from 'C:\Programs
> \Python26\lib\in
> spect.pyc'>})
> 
> However, if you wanted a decorator that examines the parameters to a
> function, you're out of luck.  By the time you have a frame, you're
> already in the function.

Hem...

def decorator(func):
     def _decorator(*args, *kw):
         print "func args are ", *args, **kw
         return func(*args, **kw)
     return _decorator





More information about the Python-list mailing list