python - 如何取得巢狀函數中的值
PHP中文网
PHP中文网 2017-05-18 10:55:41
0
3
770

假設有這樣一段程式碼:

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

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

現在希望在異常時不對demo函數內的程式碼做任何修改也可以獲得demo中a和b的值。

PHP中文网
PHP中文网

认证0级讲师

全部回覆(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']
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板