Python中eval如何使用?其作用是什麼?

老男孩IT教育機構發表於2023-04-04

  eval是Python中比較常用的函式之一,該函式可以計算字串中有效的表示式,並返回結果,還可以將字串轉成相應的物件,還可以將利用反引號轉換的字串再反轉回物件,本篇文章為大家詳細的介紹一下Python中eval的基本用法!

  Python中eval的用法:

  Python eval()函式的功能:將字串str當成有效的表示式來求值並返回計算結果。

  語法:

  eval(source[,globals[,locals]]) -> value

  引數:

  source:一個Python表示式或函式compile()返回的程式碼物件。

  blobals:可選。必須是dictionary

  locals:可選。任意map物件

  如果提供了globals引數,那麼它必須是dictionary型別;如果提供了locals引數,那麼它可以是任意的map物件。

  Python的全域性名字空間儲存在一個叫globals()的dict物件中;區域性名字空間儲存在一個叫locals()的dict物件中。我們可以用print(locals())來檢視該函式體內的所有變數名和變數值。

  x = 1

  y = 1

  num = eval("x+y")

  print('num',num)

  def g():

  x = 2

  y = 2

  num1 = eval("x+y")

  print('num1',num1)

  num2 =eval('x+y',globals())

  print('num2',num2)

  num3 = eval("x+y",globals(),locals())

  print('num3',num3)

  g()

  num2

  num1 4

  num2 2

  num3 4

  解析:num2因為有globals所以是全域性變數,執行後結果為4;num3既有globals又有locals,僅在此情況下,優先採用locals的值,故計算結果是2。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2943738/,如需轉載,請註明出處,否則將追究法律責任。

相關文章