Можно ли избежать зарезервированного слова в 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 не выполняет эти проверки при распаковке.