赞
踩
在学习tvm script的过程中接触到了python抽象语法树,记录一下
lineno
col_offset
ast.expr 和 ast.stmt 子类的实例有 lineno 和 col_offset 属性。lineno 是源代码的行数(从1开始, 所以第一行行数是1),而 col_offset 是该生成节点第一个token的UTF-8字节偏移量。记录下UTF-8偏移量的原因是parser内部使用UTF-8。
“”“
什么是上下文管理器?
这里先了解下上下文,上下文是 context 直译的叫法,在程序中用来表示代码执行过程中所处的前后环境,比如在文件操作时,文件需要打开关闭,而文件读写操作就处于文件操作的上下文环境中。
上下文管理器,上下文管理器是指在一段代码执行之前,执行一些预处理的工作,代码执行之后再执行一些清理工作。
上下文管理器中有__enter__()和 exit() 两个方法,enter()方法在执行 with 后面的语句时执行,一般用来处理操作前的内容,比如一些创建对象,初始化等; exit() 方法在 with 内的代码执行完毕后执行,一般用来处理一些善后收尾工作,比如文件的关闭,数据库的关闭等。
简单来说,上下文管理器的原理过程如下:
调用__enter__()方法,进行预处理操作执行用户操作调用 __exit__() 方法,完成清理操作
”“”
operator 模块导出了一组与 Python 的内在运算符相对应的高效函数。 例如,operator.add(x, y) 等价于表达式 x+y。 许多函数名称是用于特殊方法的名称,没有双下划线。 为了向后兼容,其中许多都有保留双下划线的变体。 为清楚起见,首选不带双下划线的变体。
函数签名(或类型签名,或方法签名) 定义函数或方法的输入和输出 。 签名可以包括:参数及其类型。 返回值和类型。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。