判断变量名是否合法python_用Python来检查变量名是否有效

时间:2025-01-22 08:50:18

在Python 3中,您可以使用

()来测试给定字符串是否是有效的Python标识符/名称.

>>> 'X'.isidentifier()

True

>>> 'X123'.isidentifier()

True

>>> '2'.isidentifier()

False

>>> 'while'.isidentifier()

True

最后一个示例显示您还应检查变量名称是否与Python关键字冲突:

>>> from keyword import iskeyword

>>> iskeyword('X')

False

>>> iskeyword('while')

True

所以你可以把它放在一个函数中:

from keyword import iskeyword

def is_valid_variable_name(name):

return () and not iskeyword(name)

另一个在Python 2和3中工作的选项是使用ast模块:

from ast import parse

def is_valid_variable_name(name):

try:

parse('{} = None'.format(name))

return True

except SyntaxError, ValueError, TypeError:

return False

>>> is_valid_variable_name('X')

True

>>> is_valid_variable_name('123')

False

>>> is_valid_variable_name('for')

False

>>> is_valid_variable_name('')

False

>>> is_valid_variable_name(42)

False

这将解析赋值语句而不实际执行它.它将选择无效标识符以及尝试分配给关键字.在上面的代码中,None是分配给给定名称的任意值 – 它可以是RHS的任何有效表达式.