python - 如何獲取嵌套函數(shù)中的值
問題描述
假設(shè)有這樣一段代碼:
def demo(): a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print(e)main()
現(xiàn)在希望在異常時不對demo函數(shù)內(nèi)的代碼做任何修改也可以獲取到demo中a和b的值。
問題解答
回答1:參考了這個問題,然后解決了。嵌套函數(shù)獲取調(diào)用函數(shù)
回答2:用全局變量 global 可以實現(xiàn)
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:
函數(shù)外加引用, 這是變量作用域的知識
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ǔ),b放一個字典變量里, 這樣就不需要global了
g = {'a':0,'b':0}def demo(): g[’a’] = 1; g[’b’] = 0 c = g[’a’] / g[’b’]
相關(guān)文章:
1. python - beautifulsoup獲取網(wǎng)頁內(nèi)容的問題2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. docker鏡像push報錯4. docker - 如何修改運(yùn)行中容器的配置5. docker-machine添加一個已有的docker主機(jī)問題6. Android "1"=="1" 到底是true還是false7. fragment - android webView 返回后怎么禁止重新渲染?8. angular.js - 在終端中用yeoman啟用angular-generator報錯,求解?9. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數(shù)賦值輸錯誤是什么原因?10. docker不顯示端口映射呢?
