2009-05-13 4 views
1

Lassen Sie uns sagen, dass ich die folgende Methode haben (in einer Klasse oder eines Moduls, ich glaube nicht, dass es wichtig ist):Erste PDB-Stil Anruferinformationen in Python

def someMethod(): 
    pass 

Ich möchte die Anrufers zugreifen Zustand zum Zeitpunkt, zu dem diese Methode aufgerufen wird.

traceback.extract_stack gibt mir nur einige Strings über den Aufruf-Stack.

Ich möchte etwas wie pdb, in dem ich einen Haltepunkt in someMethod() setzen kann und dann "u" eingeben, um den Call-Stack hinaufzugehen und dann den Zustand des Systems dann zu untersuchen.

+0

wie inspect.currentframe Scheint() ist ein Anfang, aber ich bin nicht sicher, wie es zu benutzen. –

Antwort

1

ich es herausgefunden:

import inspect 

def callMe(): 
    tag = '' 
    frame = inspect.currentframe() 
    try: 
     tag = frame.f_back.f_locals['self']._tag 
    finally: 
     del frame 

    return tag