python中eval()用法
阿新 • • 發佈:2021-01-08
技術標籤:python學習學習總結深度學習自然語言處理神經網路
在paddleocr中遇到了eval()的使用,以前沒用過,總結一下,增強理解和記憶
就是eval獲得一個字串輸入(字串),可以是字串表示式,字串函式名,字串類名,會計算字串中的表示式並返回結果。
import paddle.nn as nn # 定義一個函式 def aaa(x): return x**2 # 定義一個類,這裡繼承自paddle.nn.Layer ,例項化以後,給輸入資料,可以直接輸出結果。 class Aaa(nn.Layer): def __init__(self): super(Aaa, self).__init__() self.z=3 def forward(self, c): return c+self.z if __name__ == '__main__': b = eval("aaa") print(b) # 輸出函式本身 <function aaa at 0x000002666D2E40D0> print(b(3)) # 3為輸入資料,輸出結果為經過計算後的數值 9 a = eval("Aaa") print(a) # 輸出構建的類 <class '__main__.Aaa'> print(a()) # 輸出初始化的類 <__main__.Aaa object at 0x00000266702054C0> print(a()(9)) # 後面9是輸入資料,輸出執行結果12