python - 如何獲取嵌套函數中的值
問題描述
假設有這樣一段代碼:
def demo(): a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print(e)main()
現在希望在異常時不對demo函數內的代碼做任何修改也可以獲取到demo中a和b的值。
問題解答
回答1:參考了這個問題,然后解決了。嵌套函數獲取調用函數
回答2:用全局變量 global 可以實現
a = b = 0def demo(): global a, b a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print ’a: %d, b: %d’ % (a, b) print(e)main()回答3:
函數外加引用, 這是變量作用域的知識
a = Noneb = Nonedef demo(): global a, b a = 1 b = 0 c = a / bdef main(): try:demo() except Exception as e:print(e)main()print aprint b
或者把a,b放一個字典變量里, 這樣就不需要global了
g = {'a':0,'b':0}def demo(): g[’a’] = 1; g[’b’] = 0 c = g[’a’] / g[’b’]
相關文章:
1. mysql - 記得以前在哪里看過一個估算時間的網站2. python中merge后文件莫名變得非常大3. 希望講講異常處理4. css3 - 純css實現點擊特效5. docker start -a dockername 老是卡住,什么情況?6. javascript - 關于<a>元素與<input>元素的JS事件運行問題7. java - 為什么第一個線程已經釋放了鎖,第二個線程卻不行?8. css3 - [CSS] 動畫效果 3D翻轉bug9. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變10. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網站的內容。
