1. 程式人生 > 其它 >python中eval()用法

python中eval()用法

技術標籤: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