''' 函數的作用: 動態執行python代碼。也就是說exec可以執行復雜的python代碼,而不像eval函數那樣只能計算一個表達式的值。 exec(source, globals=None, locals=None, /) source:必選參數,表示需要被指定的python代碼。它必須是字符串或code對象。如果source是一個字符串,該字符串會先被解析為一組python語句,然后執行。如果source是一個code對象,那么它只是被簡單的執行。 返回值: exec函數的返回值永遠為None。 eval()函數和exec()函數的區別: eval()函數只能計算單個表達式的值,而exec()函數可以動態運行代碼段。 eval()函數可以有返回值,而exec()函數返回值永遠為None。 ''' x = 10 def func(): y = 20 a = exec("x+y") print("a:",a) #輸出 a: None b = exec("x+y",{"x":1,"y":2}) print("b:",b) #輸出 b: None c = exec("x+y",{"x":1,"y":2},{"y":3,"z":4}) print("c:",c) #輸出 c: None d = exec("print(x,y)") print("d:",d) #輸出 d: None func() x = 10 expr = """ z = 30 sum = x + y + z #一大包代碼 print(sum) """ def func(): y = 20 exec(expr) #10+20+30 輸出60 exec(expr,{'x':1,'y':2}) #30+1+2 輸出 33 exec(expr,{'x':1,'y':2},{'y':3,'z':4}) #30+1+3,x是定義全局變量1,y是局部變量 輸出34 func() #參考原博客 https://www.cnblogs.com/yangmingxianshen/p/7810496.html