Maison  >  Questions et réponses  >  le corps du texte

python - Comment obtenir une valeur dans une fonction imbriquée

Supposons qu'il existe un morceau de code comme celui-ci :

def demo():
    a = 1
    b = 0
    c = a / b

def main():
        try:
            demo()
        except Exception as e:
            print(e)
main()

Maintenant, j'espère que les valeurs de a et b dans la démo pourront être obtenues sans apporter de modifications au code dans la fonction de démonstration lorsqu'une exception se produit.

PHP中文网PHP中文网2712 Il y a quelques jours742

répondre à tous(3)je répondrai

  • 仅有的幸福

    仅有的幸福2017-05-18 10:57:41

    J'ai fait référence à ce problème et je l'ai résolu.
    La fonction imbriquée obtient la fonction d'appel

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-18 10:57:41

    Peut être réalisé en utilisant des variables globales global

    a = b = 0
    def demo():
        global a, b
        a = 1
        b = 0
        c = a / b
    
    def main():
            try:
                demo()
            except Exception as e:
                print 'a: %d, b: %d' % (a, b)
                print(e)
    main()

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:57:41

    Fonction plus référence, c'est la connaissance de la portée variable

    a = None
    b = None
    def demo():
        global a, b
        a = 1
        b = 0
        c = a / b
    
    def main():
        try:
            demo()
        except Exception as e:
            print(e)
    main()
    
    print a
    print b

    Ou mettez a et b dans une variable de dictionnaire, afin que global ne soit pas nécessaire

    g = {"a":0,"b":0}
    def demo():
        g['a'] = 1;
        g['b'] = 0
        c = g['a'] / g['b']

    répondre
    0
  • Annulerrépondre