Una costante , in qualsiasi linguaggio di programmazione, è un identificatore il cui valore non deve essere modificato una volta è impostato. Non importa quando questo valore viene appreso a condizione che non si possa accedere alla costante con altro che questo valore.
Se desideri distinguere tra tipi di costanti in base a quando il loro valore è noto, i termini sono:
- Costanti in fase di compilazione (con valore statico)
- Costanti di tempo di esecuzione (con valori dinamici)
I valori definiti in fase di compilazione direttamente nell'origine sono chiamati letterali. 2 è un letterale.
Quanto bene le costanti sono protette da cambiamenti accidentali varia da lingua a lingua. Una convenzione di denominazione comune per segnalare l'intenzione di non modificare il valore per rendere maiuscolo il nome.
Python ha una tradizione nell'usare convenzioni di denominazione piuttosto che parole chiave per segnalare quali parole chiave avrebbero altrimenti far rispettare. Non esiste una parola chiave const, proprio come non esiste una parola chiave privata. Invece usano CAPITALS_SEPERATED_BY_UNDERSCORES e __PRIVATES_PRECEDED_BY_UNDERSCORES.
Mentre Python non ha una parola chiave const per proteggere una costante da cambiare ci sono modi per simulare la protezione con getter e così via. Se semplicemente non ti fidi dei tuoi colleghi programmatori di rispettare ciò che segnali con la convenzione di denominazione. Molto simile a Java, dove il determinato può sconfiggere queste protezioni usando il riflesso, capire che nulla proteggerà perfettamente questo valore. Assicurati che la convenzione di denominazione sia davvero insufficiente per le tue esigenze prima di costruire le tue protezioni.