python中eval()用法

在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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值