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


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to