您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python检查变量名是否有效

Python检查变量名是否有效

在Python 3中,您可以str.isidentifier()用来测试给定的字符串是否为有效的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 name.isidentifier() 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的任何有效表达式。

python 2022/1/1 18:44:53 有300人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶