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放一個字典變量里, 這樣就不需要global了
g = {'a':0,'b':0}def demo(): g[’a’] = 1; g[’b’] = 0 c = g[’a’] / g[’b’]
相關(guān)文章:
1. 為什么我ping不通我的docker容器呢???2. 關(guān)于docker下的nginx壓力測試3. javascript - vue vue-router 報$router重復(fù)定義4. java - 根據(jù)月份查詢多個表里的內(nèi)容怎么實現(xiàn)好?5. javascript - webpack熱加載配置不生效6. 關(guān)于Java引用傳遞的一個困惑?7. debian - docker依賴的aufs-tools源碼哪里可以找到啊?8. windows2003下的apache響應(yīng)時間特別長?9. angular.js - angular內(nèi)容過長展開收起效果10. node.js - node exec 執(zhí)行沒反應(yīng)
