python - 如何獲取嵌套函數(shù)中的值
問(wèn)題描述
假設(shè)有這樣一段代碼:
def demo(): a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print(e)main()
現(xiàn)在希望在異常時(shí)不對(duì)demo函數(shù)內(nèi)的代碼做任何修改也可以獲取到demo中a和b的值。
問(wèn)題解答
回答1:參考了這個(gè)問(wèn)題,然后解決了。嵌套函數(shù)獲取調(diào)用函數(shù)
回答2:用全局變量 global 可以實(shí)現(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ù)外加引用, 這是變量作用域的知識(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放一個(gè)字典變量里, 這樣就不需要global了
g = {'a':0,'b':0}def demo(): g[’a’] = 1; g[’b’] = 0 c = g[’a’] / g[’b’]
相關(guān)文章:
1. html - vue項(xiàng)目中用到了elementUI問(wèn)題2. mysql scripts提示 /usr/bin/perl: bad interpreter3. showpassword里的this 是什么意思?代表哪個(gè)元素4. css3 - border-bottom 的長(zhǎng)度可否超過(guò)盒子的寬度呢?實(shí)現(xiàn)如下圖效果。(我的書(shū)下面的線)5. android - 用textview顯示html時(shí)如何寫imagegetter獲取網(wǎng)絡(luò)圖片6. 對(duì)mysql某個(gè)字段監(jiān)控的功能7. css3 - css怎么實(shí)現(xiàn)圖片環(huán)繞的效果8. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?9. JavaScript事件10. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結(jié)果進(jìn)行優(yōu)化 ?
