Python3 exec 函數
描述
exec 執行儲存在字串或檔中的 Python 語句,相比於 eval,exec可以執行更複雜的 Python 代碼。
語法
以下是 exec 的語法:
exec(object[, globals[, locals]])
參數
- object:必選參數,表示需要被指定的Python代碼。它必須是字串或code對象。如果object是一個字串,該字串會先被解析為一組Python語句,然後在執行(除非發生語法錯誤)。如果object是一個code對象,那麼它只是被簡單的執行。
- globals:可選參數,表示全局命名空間(存放全局變數),如果被提供,則必須是一個字典對象。
- locals:可選參數,表示當前局部命名空間(存放局部變數),如果被提供,可以是任何映射對象。如果該參數被忽略,那麼它將會取與globals相同的值。
返回值
exec 返回值永遠為 None。
實例
以下展示了使用 exec 的實例:
實例 1
>>>exec('print("Hello World")')
Hello World
# 單行語句字串
>>> exec("print ('xuhuhu.com')")
zaixian.com
# 多行語句字串
>>> exec ("""for i in range(5):
... print ("iter time: %d" % i)
... """)
iter time: 0
iter time: 1
iter time: 2
iter time: 3
iter time: 4
實例 2
x = 10
expr = """
z = 30
sum = x + y + z
print(sum)
"""
def func():
y = 20
exec(expr)
exec(expr, {'x': 1, 'y': 2})
exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
func()
輸出結果:
60 33 34