suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Python – So erhalten Sie einen Wert in einer verschachtelten Funktion

Angenommen, es gibt einen Code wie diesen:

1

2

3

4

5

6

7

8

9

10

11

<code>def demo():

    a = 1

    b = 0

    c = a / b

 

def main():

        try:

            demo()

        except Exception as e:

            print(e)

main()</code>

Jetzt hoffe ich, dass die Werte von a und b in der Demo erhalten werden können, ohne dass Änderungen am Code in der Demofunktion vorgenommen werden müssen, wenn eine Ausnahme auftritt.

PHP中文网PHP中文网2873 Tage vor832

Antworte allen(3)Ich werde antworten

  • 仅有的幸福

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

    参考了这个问题,然后解决了。
    嵌套函数获取调用函数

    Antwort
    0
  • PHP中文网

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

    用全局变量 global 可以实现

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    <code class="python">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()</code>

    Antwort
    0
  • 过去多啦不再A梦

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

    函数外加引用, 这是变量作用域的知识

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    <code class="python">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</code>

    或者把a,b放一个字典变量里, 这样就不需要global了

    1

    2

    3

    4

    5

    <code class="python">g = {"a":0,"b":0}

    def demo():

        g['a'] = 1;

        g['b'] = 0

        c = g['a'] / g['b']</code>

    Antwort
    0
  • StornierenAntwort