str.isidentifier()

Метод isidentifier() проверяет, является ли строка корректным идентификатором по правилам Python (имя переменной, функции, класса и т.п.). Это не учитывает, является ли слово зарезервированным (if, for, class и т.д.) — для проверки на ключевое слово используйте keyword.iskeyword().

Сигнатура

str.isidentifier()

Параметры

Метод не принимает параметров.

Возвращаемое значение

True, если строка соответствует правилам идентификатора Python: начинается с буквы или подчёркивания и состоит из букв, цифр или подчёркиваний. Иначе — False.

Примеры использования

Пример 1. Базовые случаи.

print("led_pin".isidentifier())
print("pin13".isidentifier())
print("13pin".isidentifier())
print("led pin".isidentifier())
True
True
False
False

Пример 2. Подчёркивание в начале.

print("_private".isidentifier())
print("__init__".isidentifier())
True
True

Пример 3. Кириллица.

Python допускает буквы Unicode в идентификаторах:

print("пин_светодиода".isidentifier())
True

Пример 4. Зарезервированные слова.

Метод вернёт True даже для ключевых слов — проверять keyword надо отдельно:

import keyword
name = "class"
print(name.isidentifier())
print(keyword.iskeyword(name))
True
True

Пример 5. Валидация имени переменной.

import keyword

def is_valid_var(name):
    return name.isidentifier() and not keyword.iskeyword(name)

for n in ["pin", "1pin", "class", "_pin", "my var"]:
    print(n, "->", is_valid_var(n))
pin -> True
1pin -> False
class -> False
_pin -> True
my var -> False

См. также

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.