Python – So erhalten Sie einen Wert in einer verschachtelten Funktion
PHP中文网
PHP中文网 2017-05-18 10:55:41
0
3
776

Angenommen, es gibt einen Code wie diesen:

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

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

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中文网

认证0级讲师

Antworte allen(3)
仅有的幸福

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

Ty80

用全局变量 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()
过去多啦不再A梦

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

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

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

g = {"a":0,"b":0}
def demo():
    g['a'] = 1;
    g['b'] = 0
    c = g['a'] / g['b']
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage