日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?eval()函數和ast.literal_eval()的區別你知道嗎_python

作者:jq_98 ? 更新時間: 2022-04-14 編程語言

eval()函數可以將字符串型的list、tuple、dict等等轉換為原有的數據類型

在這里插入圖片描述

即使用eval可以實現從元組,列表,字典型的字符串到元組,列表,字典的轉化,此外,eval還可以對字符串型的輸入直接計算

在這里插入圖片描述


從上面來看,eval功能可謂是非常強大,即可以做string與list、tuple、dict之間的類型轉換,還可以做計算器使用,但是eval強大的背后有著巨大的安全隱患,比如,用戶惡意輸入下面的字符串,是十分危險的

在這里插入圖片描述


所以這里因為安全處理方式 ast.literal_eval(), 該函數會判斷需要計算的內容計算后是不是合法的python類型,如果是則進行運算,否則就不進行運算比如上面的計算操作和危險操作,使用ast.literal_eval()都會拒絕執行,報錯

在這里插入圖片描述

在這里插入圖片描述

ast.literal_eval()只會執行合法的Python類型,從而大大降低系統的風險性

在這里插入圖片描述

總結

原文鏈接:https://blog.csdn.net/jq_98/article/details/122737830

欄目分類
最近更新