python exec()函數


'''
函數的作用:
動態執行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

 


免責聲明!

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



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