栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

eval()函数用法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

eval()函数用法

今天在看yolo代码时 看到一个exal的用法。

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

通常用来计算表达式:

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
eval(expression[, globals[, locals]])
#expression -- 表达式。
#globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
#locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象

Evaluate the given source in the context of globals and locals.

The source may be a string representing a Python expression or a code object as returned by compile(). The globals must be a dictionary and locals can be any mapping, defaulting to the current globals and locals. If only globals is given, locals defaults to it.

在全局和局部上下文中评估给定源。

源代码可以是表示Python表达式的字符串,也可以是由compile()返回的代码对象。全局变量必须是字典,局部变量可以是任何映射,默认为当前全局变量和局部变量。如果只给出全局变量,则局部变量默认为全局变量。

实例如下:

在yolo.py代码中有:

 m = eval(m) if isinstance(m, str) else m  # eval strings
#其意思类似于 如果m是一个字符串类型的数据,则对m溯源 源头可以是一个类

由于在这里m被赋值的是一个Conv的字符串:溯源后找到了在common.py文件下定义的一个类,算是完成了一个字符串转变成类的操作。

class Conv(nn.Module):#卷积
    # Standard convolution
    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groups
        super(Conv, self).__init__()
        self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)
        self.bn = nn.BatchNorm2d(c2)
        self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity())

    def forward(self, x):
        return self.act(self.bn(self.conv(x)))

    def fuseforward(self, x):
        return self.act(self.conv(x))

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037057.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号