Aller au contenu

Déclaration des variables et constantes

Introduction

Une variable permet d'associer un nom à une valeur afin de l'utiliser dans un programme. En C#, une variable est déclarée avec un type explicite, ou avec l'inférence de type (mot-clé var) pour que le compilateur déduise son type. En Python, aucune déclaration préalable n'est nécessaire : une variable est créée lors de la première affectation.

Déclarer et initialiser une variable

En C# :

string name = "Laurence";
int age = 54;
bool isActive = true;

// Le compilateur déduit le type double.
var price = 69.79;

Et voici l'équivalent en Python :

name = "Laurence"
age = 54
is_active = True
price = 69.79

Par convention, les noms des variables Python utilisent le style snake_case : les mots sont écrits en minuscules et séparés par un caractère de soulignement, comme is_active.

Comprendre le typage dynamique

En C#, le type d'une variable est défini lors de sa déclaration :

var value = 42;     // La variable est de type int.
value = "Bonjour"; // Erreur de compilation.

En Python, un même nom de variable peut être associé successivement à des données / objets de types différents :

value = 42
value = "Bonjour"

Python possède un typage dynamique : le type est associé à l'objet référencé par la variable. Cependant, il est préférable de conserver une utilisation cohérente de chaque variable pour faciliter la maintenance du code.

Ajouter une annotation de type

Python permet d'indiquer le type attendu à l'aide d'une annotation :

name: str = "Alice"
age: int = 30
is_active: bool = True
price: float = 19.90

Ces annotations documentent le code et peuvent être exploitées par l'éditeur ou un outil d'analyse statique de code (tel que Mypy). Elles ne permettent pas d'imposer des contrôles des types.

Utiliser une variable initialisée

Une variable doit être initialisée avant d'être utilisée :

print(quantity)  # NameError si quantity n'a pas été définie.

Pour représenter une variable non initialisée, Python utilise None, dont le rôle est comparable à celui de null en C# :

result = None

Les constantes

Une constante représente une valeur qui ne doit pas changer pendant l'exécution du programme.

En C#, le mot-clé const permet de déclarer une constante dont la valeur est connue à la compilation. Le compilateur interdit toute nouvelle affectation :

const int MaxAttempts = 3;
MaxAttempts = 5; // Erreur de compilation.

En Python, il n'existe pas de mot-clé équivalent à const. Par convention, les constantes sont nommées en majuscules, avec un caractère de soulignement pour séparer les mots :

MAX_ATTEMPTS = 3
DEFAULT_TIMEOUT = 30

Cette convention indique que leurs valeurs ne doivent pas être modifiées, sans pour autant interdire leur modification :

MAX_ATTEMPTS = 5  # Autorisé, mais contraire à la convention.

Indiquer une constante avec le mot-clé Final

L'annotation Final, disponible dans le module typing, permet d'indiquer aux outils d'analyse statique (tels que Mypy), que la valeur d'une variable ne doit pas être modifiée :

from typing import Final

MAX_ATTEMPTS: Final[int] = 3
MAX_ATTEMPTS = 5  # Erreur signalée par Mypy.