在Python中,字符串可以替换为换行符,因此我经常遇到一些我想不起来的bug。例如:
numbers = (
'zero',
'one',
'two'
'three',
'four',
'five',
)
为了避免这个难题,我想在将源代码提交到存储库之前,先检查我要使用Git Hook提交的源代码是否有问题。但是,因为您可能真的想要组合字符串,所以我想强制源代码在每个字符串的末尾都有一个逗号,或者在每个字符串的末尾都没有逗号。例如:
# ok
numbers = (
'zero'
'one'
'two'
'three'
'four'
'five'
)
# ok
numbers = (
'zero',
'one',
'two',
'three',
'four',
'five',
)
# error
numbers = (
'zero',
'one',
'two',
'three',
'four',
'five'
)
所以我检查了AST模块,看看AST模块是否能检测到它。因此:
>>> import ast
>>> ast.dump(ast.parse("('1'\n'2')"))
"Module(body=[Expr(value=Str(s='12'))])"
有什么好办法吗?你知道吗
您正在使用元组,也许使用不同的结构(例如,方括号(列表)或有序集)将提供您想要的内容。如果我正确地记住了tupling/untupling规则,那么您看到的是将6个元素的tuple解包成1个元素变量的效果—python必须处理额外的5个值,concation被选为标准行为
相关问题 更多 >
编程相关推荐