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. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)2. jquery清除input type為password?3. python-mysqldb - 這樣結構的mysql表,如何快速update4. 這段代碼既不提示錯誤也看不到結果,請老師明示錯在哪里,謝謝!5. php7.3.4中怎么開啟pdo驅動6. 微信小程序可以用gulp,webpack嗎?7. 老師 我是一個沒有學過php語言的準畢業生 我希望您能幫我一下8. ueditor上傳服務器提示后端配置項沒有正常加載,求助!!!!!9. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)10. tp5 不同控制器中的變量調用問題
