Visualisation des Variables Locales dans Spyder Variable Explorer

Je suis nouveau sur python et je suis en utilisant Spyder IDE. Une fonctionnalité que j'apprécie c'est que c'est variable d'explorer. Cependant, d'après quelques recherches, j'ai trouvé qu'il ne montre que des variables globales. Une solution de contournement que j'ai trouvé c'est en utilisant les inspecter module:

import inspect

local_vars = {}

def main():
    global local_vars
    a = 2
    b = 4
    c = a+b
    local_vars = inspect.currentframe().f_locals
    return c

main()

Cela fonctionne bien, cependant, j'ai d'autres fonctions qui sont appelés dans main (), et j'aimerais voir ces variables dans la variable explorer ainsi. J'ai imité ce qui a été fait pour les variables dans la fonction principale et le dict n'apparaît pas. J'ai remarqué que quand je désactive le réglage à "exclure des types de données non pris en charge" dans Spyder variable d'explorer les options, la seconde dict apparaît avec le droit de l'attribut de taille, cependant, je suis incapable d'ouvrir, afficher. Toutes les idées sur la contourner? C'est mon premier temps à poster BTW.

Merci!!


Voici un exemple de mon problème, et j'ai tracé jusqu'à pylab parcelles.

import inspect, pylab

mainVars = {}

def main():
    global mainVars

    a = 1
    b = 2

    fig = pylab.figure()
    subPlot = fig.add_subplot(211)    ## line of interest

    pylab.close('all')

    mainVars = inspect.currentframe().f_locals

main()

Lorsque la ligne d'intérêt est commenté, le dict est créé et peut être consulté. Il semble que l'objet créé à l'aide de la fig.add_subplot() n'est pas géré correctement par le dict. Il semble être un type de données non pris en charge.

Espère que cela aide à clarifier la question.

Merci encore.

  • (Spyder dev ici) s'il vous Plaît poster un exemple qui reflète vraiment ce que vous voulez obtenir à partir de la Variable Explorer, afin que nous puissions le tester et voir ce que nous pourrions faire à ce sujet.
  • Appelez-vous ces deux fonctions dans votre code?
  • Veuillez consulter la modification faite à mon OP car il a un meilleur exemple et cela montre exactement où se trouve le problème.
  • Je peux confirmer ce comportement soit ou non au sein d'une fonction: un dictionnaire contenant une intrigue secondaire instance n'est pas indiqué dans la variable d'explorer si affichant uniquement les types pris en charge.
  • Est-il un moyen d'afficher le contenu de la dict malgré l'existence d'un rapport d'objet à l'intérieur d'elle?
  • Oui, il existe une solution de contournement. Je l'ai posté ci-dessous comme une réponse. Merci pour l'explication complète, les choses étaient plus claires pour moi alors.

InformationsquelleAutor Mike L | 2014-07-17