[問題] 關於compile() 和 eval() 將字串轉成dict
最近看到一個python程式,目的是將長的很像dict結構的字串
透過compile()與eval()轉換成dict,其程式碼如下:
str1 = "{'a':4, 'b':42, 'c':99}"
command = "result = %s" % str1
co = compile(command, "", "exec")
eval(co,globals())
return result
不懂為什麼這裡可以直接回傳result?
而且result所存的值就是:{'a':4, 'b':42, 'c':99} , type是dict 很神奇!!
查過許多python的書雖然都有提到compile()和eval()這二個函式
但還是無法理解 為什麼可以這樣使用 就將字串轉成dict??
請教各位大大 來解惑一下啦!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.72.248
→
07/27 15:51, , 1F
07/27 15:51, 1F
→
07/27 15:51, , 2F
07/27 15:51, 2F
→
07/27 15:52, , 3F
07/27 15:52, 3F
推
07/27 15:56, , 4F
07/27 15:56, 4F
→
07/27 15:57, , 5F
07/27 15:57, 5F
→
07/27 16:34, , 6F
07/27 16:34, 6F
→
07/27 16:35, , 7F
07/27 16:35, 7F
→
07/27 16:35, , 8F
07/27 16:35, 8F