Я пытаюсь использовать довольно типичный шаблон if/else -> CONSTANT = ... в Python, но получаю ошибку пирайта, которая «... является постоянной (потому что она записана в верхнем регистре) и не может быть переопределена» (reportConstantRedefinition). Хотя это не синтаксическая ошибка, я пытаюсь понять, как избежать предупреждения о пирайте и — что более важно — каков правильный шаблон.
Моя константа определяется на основе оператора if. Например:
Код: Выделить всё
if os.getenv('DEBUG'):
API_HOST = 'http://STAGING/'
else:
API_HOST = 'http://PROD/'
В последней строке Пирайт выдает ошибку: «API_HOST» является постоянным (поскольку он записан в верхнем регистре) и не может быть переопределен».
Я всегда думал, что это допустимый шаблон. Есть ли лучший способ сделать это, который не является просто способом перехитрить пирайт? Почему Пирайт считает, что мне следует это сделать?
Например, APIHOST = 'x' if os.getenv('DEBUG') else 'y' будет работать, но его труднее читать и он не масштабируется.
(Я также пытался заранее определить переменную (
), чтобы было ясно, что он не отключен (чего быть не может), но это просто дает мне ошибку «переопределения» в обе строках.)