Можно ли избежать зарезервированного слова в Python?

Возможно, не стоит называть переменную после зарезервированного слова, но мне любопытно:

Есть ли в Python escape-синтаксис, позволяющий использовать зарезервированное слово в качестве имени переменной?

Например, в C# это можно сделать, поставив перед зарезервированным словом префикс @

4 ответа

Решение

Это невозможно, однако в Python есть традиция добавлять _ чтобы получить новый идентификатор:

def drive(from_, to):
    pass

Нет, это невозможно.

В разделе 2.3.1 "Справочника по языку Python" сказано, что ключевые слова "нельзя использовать как обычные идентификаторы", и не указан синтаксис escape.

Вероятно, это хорошо, ради читабельности кода!

Если вы не возражаете против префиксов, вы можете "префикс" с подчеркиванием. Конечно, это на самом деле будет частью имени переменной, но это будет выглядеть как зарезервированное слово с префиксом. Кроме этого, это невозможно.

Я получил ошибку при использовании следующего:

for r in db.call ('ReadCashflows',
                  number = number,
                  from = date_from,
                  to = date_to):

Я попытался использовать заглавные буквы, и теперь это работает:

for r in db.call ('ReadCashflows',
                  number = number,
                  FROM = date_from,
                  TO = date_to):

Это было возможно для меня, потому что моя база данных ORACLE (которая не зависит от регистра). Обратите внимание на приведенный выше код: в моем программном приложении фактическими параметрами в базе данных являются pFROM и pTO; "p" добавляется в постобработке до вызова базы данных.

db.call( ..., **{ 'from' : date_from }, **{ 'to' : date_to })

Python не выполняет эти проверки при распаковке.

Другие вопросы по тегам