1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          python中eval的用法(如何在PYTHON中使用eval)

          來源:互聯網轉載 時間:2024-05-03 09:16:00

          eval是Python的一個內置函數,這個函數的作用是,返回傳入字符串的表達式的結果。想象一下變量賦值時,將等號右邊的表達式寫成字符串的格式,將這個字符串作為eval的參數,eval的返回值就是這個表達式的結果。

          python中eval函數的用法十分的靈活,但也十分危險,安全性是其最大的缺點。本文從靈活性和危險性兩方面介紹eval。

          1、強大之處

          舉幾個例子感受一下,字符串與list、tuple、dict的轉化。

          a="[[1,2],[3,4],[5,6],[7,8],[9,0]]"b=eval(a)bOut[3]:[[1,2],[3,4],[5,6],[7,8],[9,0]]type(b)Out[4]:lista="{1:'a',2:'b'}"b=eval(a)bOut[7]:{1:'a',2:'b'}type(b)Out[8]:dicta="([1,2],[3,4],[5,6],[7,8],(9,0))"b=eval(a)bOut[11]:([1,2],[3,4],[5,6],[7,8],(9,0)) 

          eval的語法格式如下:

          eval(expression[,globals[,locals]])

          強大吧,給個字符串給eval,eval給你一個表達式返回值。

          globals : 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。expression : 字符串

          locals : 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

          結合globals和locals看看幾個例子

          傳遞globals參數值為{“age”:1822},

          eval("{'name':'linux','age':age}",{"age":1822})

          輸出結果

          eval("{'name':'linux','age':age}",{"age":1822}) 

          再加上locals變量

          eval("{'name':'linux','age':age}",{"age":1822},locals())

          當兩個參數都不為空時,先查找locals參數,再查找globals參數,locals參數中同名變量會覆蓋globals中的變量。根據上面兩個例子可以看到當locals參數為空,globals參數不為空時,查找globals參數中是否存在變量,并計算。

          2、危險之處

          eval雖然方便,但是要注意安全性,可以將字符串轉成表達式并執行,就可以利用執行系統命令,刪除文件等操作。

          假設用戶惡意輸入。比如:

          eval("__import__('os').system('ls/home/pythontab.com/www/')") 

          那么eval()之后,你會發現,當前文件夾文件都會展如今用戶前面。這句其實相當于執行了

          os.system('ls/home/pythontab.com/www/')

          那么繼續輸入:

          eval("__import__('os').system('cat/home/pythontab.com/www/test.sql')")

          代碼都給人看了。

          再來一條刪除命令,文件消失。比如

          eval("__import__('os').system('rm/home/pythontab.com/www/test.data')")

          所以使用eval,一方面享受他的了靈活性同時,也要注意安全性。

          看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注本站行業資訊頻道,感謝您對本站的支持。

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          據央視財經消息,擁有較高學歷且年輕的育兒嫂、月嫂,這幾年的需求不斷增多,薪酬也不斷上漲。央視財經從北京多家公司了解到,月嫂和育兒嫂月平均工資分別在15000元和7000元左右。相關閱讀:近幾年,月嫂行業發生了很大的變化。據了解,目前越來越多的高學歷人才開始追捧月嫂行業,這是社會發展的必然趨勢,也是勞動力素質升級的必然結果。城鎮居民收入及消費水平的提高為“月嫂”市場奠定發展基...

          【資料圖】最近這段時間總有小伙伴問小編dnf劍豪加點是什么,小編為此在網上搜尋了一些有關于dnf劍豪加點的知識送給大家,希望能解答各位小伙伴的疑惑。1、暴擊:根據自身的暴擊率進行學習,進圖砍怪在冥思被動5層條件下達到97%暴擊為滿暴擊。2、連環斬:+1,用于跑圖。3、櫻落斬:+1或者不學,可以用來躲無敵技能。4、一花渡江:+1,用于跑圖,其次可以在強制中斷轉職系列技能后使用。5、碎巖裂地斬:剩余S...

          什么是b股轉h股?b股轉h股是指在中國證券證券交易所(上海、深圳)上市的外資股在香港上市,b股轉h股是一種處理b股退市的方案。在a股b股h股中,b股是特殊的人民幣股票。是以人民幣標明面值,以外幣認購和交易,在中國證券證券交易所(上海,深圳)上市交易的外資股票。b股參與者少,市場冷清,交易量小。此外,自1997年以來,隨著紅籌股、H股股票的大量發行和上市,以及中國企業在海外上市,b股市場為內地企業籌...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>