通過exec()、globals()和locals()
# 通過exec()
for i in range(1, 4):
# 第一次循環 i=1 時,會執行字符串中的python語句 ex1 = "exec1",以此類推
exec(f'ex{i} = "exec{i}"')
# 通過globals()和locals()
def test():
# globals()
for i in range(1, 4):
# 第一次循環 i=1 時,執行 globals()['gb1'] = 'global1', globals()是一個dict
globals()[f'gb{i}'] = f'global{i}'
# locals()
for i in range(1, 4):
locals()[f'lc{i}'] = f'local{i}'
# 嘗試打印locals的變量
try:
print(lc1, lc2, lc3) # 會報錯
except Exception as e:
print(e)
print(locals()['lc1'], locals()['lc2'], locals()['lc3']) # 通過鍵值對
if __name__ == '__main__':
# 執行
test()
print('---------------------')
# 打印函數定義的全局變量
print(gb1, gb2, gb3)
print('---------------------')
# 打印通過exec()定義的變量
print(ex1, ex2, ex3)
輸出結果:
name 'lc1' is not defined
local1 local2 local3
---------------------
global1 global2 global3
---------------------
exec1 exec2 exec3