Именованные константы в Python

Есть ли в Python константы? В книге столкнулась с понятием "именованные константы". Слышала в прошлом году, что константы в Python отсутствуют.


Ответы (3 шт):

Автор решения: Amgarak

Насколько мне известно, в питоне не существует констант. Есть только соглашение именовать переменные ТАКИМ_ОБРАЗОМ, что означает, что менять их значение не следует.

→ Ссылка
Автор решения: Четвёртый Кэп

Можно использовать модуль Constant:

from pyconst import Constant

const = Constant()
const.PI = 3.14159

Более подробная информация есть здесь

→ Ссылка
Автор решения: MarianD

«Настоящие» константы, т.е. такие, которые

  1. явно определяются как константы (напр. в языке C/C++ ключевым словом const),
  2. и которым должно присвоить какое-то значение прямо в их определении,
  3. и которым язык программирования (точнее их компилятор / интерпретатор / система во время исполнения) не позволит изменить их значение, хотя бы программист этого хотел (т.е. попытка это сделать вызовет ошибку

в Питоне действительно не существуют.

Вместо этого в Питоне программист сам должен следить за тем, чтобы то, что бы он хотел сохранить как константу, невольно не изменил.

Чтобы программист не выл должен помнить / думать, если ту или другую переменную он хочет считать константой, в Питоне принято для констант использовать имена со всеми буквами прописными, например GREEN, PLAYER1 или FIRST_NUMBER.

Для опытного программиста в Питоне такие имена являются «неприкосновенными» — он их будет только использовать, но не менять.


Примечание:

Константы в языках программирования используются главным образом для избежания от «магических чисел» - например в долгой программе вы встретитесь с командой

for i in range(36):

и сразу же не поймете, почему там именно число 36.

Но когда вы это число определите — лучше всего в начале программы — как константу с соответствующим именем, все становится ясным:

ORDERS = 36                      # количество заказов (в начале программы)
   ...
   ...
for i in range(ORDERS):
       ...
→ Ссылка