本文整理汇总了Python中passmanager.Transformation.generic_visit方法的典型用法代码示例。如果您正苦于以下问题:Python Transformation.generic_visit方法的具体用法?Python Transformation.generic_visit怎么用?Python Transformation.generic_visit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类passmanager.Transformation
的用法示例。
在下文中一共展示了Transformation.generic_visit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: generic_visit
# 需要导入模块: from passmanager import Transformation [as 别名]
# 或者: from passmanager.Transformation import generic_visit [as 别名]
def generic_visit(self, node):
if node in self.constant_expressions:
try:
fake_node = ast.Expression(
node.value if isinstance(node, ast.Index) else node)
code = compile(fake_node, '<constant folding>', 'eval')
value = eval(code, self.env)
new_node = self.to_ast(value)
if (isinstance(node, ast.Index)
and not isinstance(new_node, ast.Index)):
new_node = ast.Index(new_node)
return new_node
except Exception: # as e:
#print ast.dump(node)
#print 'error in constant folding: ', e
return Transformation.generic_visit(self, node)
else:
return Transformation.generic_visit(self, node)