python里使用exec函數,報錯NameError: name ‘XXX‘ is not defined的解決辦法


轉自 (1條消息) python里使用exec函數,報錯NameError: name ‘XXX‘ is not defined的解決辦法_qiongtaiyu的博客-CSDN博客

大半年前,我寫代碼的時候,在自己定義的函數里使用exec還可以正確運行,但這兩天又用到這個函數,同樣的用法卻無法正確運行了。

例子如下:

報錯:NameError: name 'f' is not defined。

在網上查找原因,發現是因為exec函數的作用域的問題,這個函數現在有兩個參量globals() 和locals()。默認情況下,exec是作用於局部范圍的,因為我是在自己定義的子函數里使用exec函數,所以就會報錯。

解決方法是修改為下圖,在子函數中使用時,在后面增加globals()。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM