有没有工具能够迭代Python文件中的所有变量和函数参数,并根据样式规则替换它们?例如,给定myModule.py中的一个函数
def myFunc(Variable):
Tmp = sin(Variable)
return Tmp * 2有没有可以像下面这样调用的工具?
> tool myModule.py --variable-begin-with-lowercase
来产生下面的结果?
def myFunc(variable):
tmp = sin(variable)
return tmp * 2我认为,该工具应该对与现有变量冲突的重命名发出警告。
发布于 2021-09-19 03:33:41
您可以使用ast.NodeTransformer
import ast
class toLower(ast.NodeTransformer):
def visit_arg(self, node):
return ast.arg(**{**node.__dict__, 'arg':node.arg.lower()})
def visit_Name(self, node):
return ast.Name(**{**node.__dict__, 'id':node.id.lower()})
code = """
def myFunc(Variable):
Tmp = sin(Variable)
return Tmp * 2
"""
new_code = ast.unparse(toLower().visit(ast.parse(code)))
print(new_code)输出:
def myFunc(variable):
tmp = sin(variable)
return tmp * 2https://stackoverflow.com/questions/56113048
复制相似问题