以python 3.8.5150.0版本為例,python中eval函數作用如下:
1、計算字符串中有效的表達式,並返回結果。
2、將字符串轉成相應的對象(如list、tuple、dict和string之間的轉換)。
3、將利用反引號轉換的字符串再反轉回對象。
參數解析:
expression:這個參數是壹個字符串,python會使用globals字典和locals字典作為全局和局部的命名空間,將expression當作壹個python表達式進行解析和計算。
globals:這個參數控制的是壹個全局的命名空間,也就是我們在計算表達式的時候可以使用全局的命名空間中的函數,如果這個參數被提供了。
並且沒有提供自定義的builtins(python的內建模塊),那麽會將當前環境中的builtins拷貝到提供的globals裏,然後進行計算。如果globals沒有被提供,則使用python的全局命名空間。
locals:這個參數控制的是壹個局部的命名空間,和globals類似,不過當它和globals中有重復的部分時,locals裏的定義會覆蓋掉globals中的,也就是說當globals和locals中有沖突的部分時,locals說了算,它有決定權,以它的為準。如果locals沒有被提供的話,則默認為globals。