最后一行,其余的只是前言。
我正在开发一个测试工具,它解析用户脚本并生成一个Python脚本,然后运行该脚本。这个想法是让非技术人员能够编写高级测试脚本。
我已经介绍了变量的概念,因此用户可以在脚本中使用LET
关键字。E、 g.LET X = 42
,我简单地扩展到X = 42
。之后,他们可以在脚本中使用X-RELEASE CONNECTION X
但是如果有人写LET 2 = 3
呢?这将生成无效的Python。
如果变量variableName
中有这个X
,那么如何检查variableName
是否是有效的Python变量?
Tags:
您可以尝试一个测试赋值,看看它是否引发一个
SyntaxError
:在Python 3中,可以使用^{} 来测试给定的字符串是否是有效的Python标识符/名称。
最后一个示例显示,还应检查变量名是否与Python关键字冲突:
所以你可以把它放在一个函数中:
在Python 2和3中工作的另一个选项是使用
ast
模块:这将解析赋值语句,而不实际执行它。它将获取无效的标识符以及分配给关键字的尝试。在上面的代码中,
None
是要分配给给定名称的任意值-它可以是RHS的任何有效表达式。您可以使用异常处理并实际捕获
NameError
和SyntaxError
。在try/except
块中测试它,并通知用户是否有一些无效的输入。相关问题 更多 >
编程相关推荐