Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 26 juin 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Lors de l'écriture d'un programme, vous écrivez rarement tout le code en une seule fois et n'exécutez votre code qu'à la fin. Au lieu de cela, vous êtes plus susceptible d'écrire du code, d'exécuter le programme, d'en écrire d'autres et de répéter jusqu'à ce que vous ayez terminé.

En effet, vous allez diviser et conquérir votre programme en vous concentrant sur certaines parties essentielles et en omettant d'autres, puis en revenant remplir les blancs. Pour le faire efficacement en Python, vous devez utiliser l'instruction pass, le sujet de cet article.

What Is the ‘Pass’ Statement?

Contrairement à la plupart des mots-clés qui disent à l'interpréteur de faire quelque chose, l'instruction pass est unique car elle dit à l'interpréteur de ne rien faire. Il est utilisé à l'intérieur des blocs.

Les blocs en Python sont des lignes de code indentées sous des fonctions, des classes ou des instructions de flux de contrôle. Les instructions de flux de contrôle sont des instructions qui modifient l'exécution normale de haut en bas d'un programme en sautant le code à l'aide de conditions ou en répétant l'exécution du code à l'aide de boucles. Les mots-clés courants de flux de contrôle en Python sont if, for et while.

Need of ‘Pass’ Statement

J'ai expliqué plus tôt que l'instruction pass est une instruction qui ne fait rien. Mais pourquoi aurions-nous besoin d'une déclaration qui ne fait rien lors de la construction d'un programme qui fait quelque chose ? Dans cette section, j'expliquerai les cas d'utilisation de l'instruction pass.

# 1. Espace réservé pour la mise en œuvre future

Comme mentionné dans l'introduction, lorsque Coding, il est utile de diviser pour mieux régner lors de l'écriture de votre programme. Par exemple, lors de l'écriture d'une fonction, vous souhaiterez peut-être créer un en-tête de fonction et revenir ultérieurement pour écrire le corps de la fonction.

Mais l'interpréteur Python vous criera dessus si vous essayez d'exécuter le code. En effet, Python s'attend à ce que le corps d'une fonction, ou tout bloc de code, contienne au moins une instruction. Voici un exemple de fonction que j'ai dans un fichier Python :

def my_function():
    # Will write the code later
    # For now there are no statements

Maintenant, si j'essaie d'exécuter le code, j'obtiendrai une erreur de syntaxe qui dira quelque chose comme ceci :

File "<ipython-input-1-58189b01193e>", line 3
    # For now there are no statements
                                     ^
SyntaxError: incomplete input
Screenshot-from-2023-06-22-01-56-37

Notre stratégie de diviser pour régner ne fonctionnera pas si nous écrivons tout à l'avance, mais Python a besoin que nous écrivions au moins quelque chose. L'instruction pass aide à cet égard. C'est techniquement une déclaration, donc si vous l'incluez dans un bloc, Python ne vous criera pas dessus. Et pourtant, il ne fait rien, vous n'avez donc pas à vous soucier de la logique de fonctionnement. Voici la fonction précédente avec l'instruction pass.

def my_function():
    # Will write the code later
    # For now we only have the pass statement
    pass

Maintenant, si nous exécutons le code, nous n'obtenons pas d'erreurs.

Screenshot-from-2023-06-22-02-03-20

Vous pouvez également appeler la fonction pour confirmer qu'elle ne fait rien.

Il s'agit essentiellement du principal cas d'utilisation de l'instruction pass en Python - en tant qu'espace réservé pour les blocs de code vides. Il ne doit pas s'agir uniquement de fonctions, mais fonctionne avec des conditions, des boucles et des classes.

# 2. Implémentation de classes abstraites et d'interfaces

L'instruction pass peut également être utilisée pour implémenter une classe abstraite. Une classe abstraite est une classe qui implémente des méthodes abstraites, et une méthode abstraite est une méthode définie mais non implémentée. Ceci est similaire au cas d'utilisation défini ci-dessus, où nous avons utilisé l'instruction pass comme espace réservé. Cependant, contrairement au cas précédent où l'instruction pass n'était que temporaire, dans ce cas, elle est permanente.

Les classes abstraites sont des classes de base qui définissent les méthodes que les superclasses qui en héritent doivent implémenter. Les classes abstraites n'implémentent aucune logique ; ils définissent les méthodes qui composent les classes héritées d'eux. Par conséquent, vous n'instanciez pas directement une classe de base.

Vous utilisez le décorateur @abstractmethod et la classe ABC définis dans le package abc pour créer des classes abstraites en Python. Si vous ne connaissez pas ou avez oublié les décorateurs, voici un article sur décorateurs en Python.

Comme je le disais, le package abc définit le décorateur @abstractmethod et la classe ABC, que nous utiliserons comme suit :

from abc import (abstractmethod, ABC)

class BasicClass(ABC):

    @abstractmethod
    def basic_method(self):
        # Basic method is a method that any superclass of BasicClass should implement
        # So we simply define it here and not implement it
        # So in the body we use the pass statement so its valid code
        pass

BasicClass hérite de la classe ABC. De plus, nous avons le décorateur @abstracmethod défini autour de basic_method. Maintenant, vous pouvez hériter de cette classe et implémenter basic_method.

class DerivedClass(BasicClass):
    def basic_method(self):
        print("Hello from the defined basic method")

Vous pouvez ensuite instancier cette classe et tester l'exécution de basic_method.

my_object = DerivedClass()

my_object.basic_method()

Lorsque vous exécutez ceci, vous devriez pouvoir obtenir le message écrit à l'écran.

Hello from the defined basic method
Screenshot-from-2023-06-22-04-11-45

# 3. Ne rien faire avec les exceptions interceptées

Lorsque le programme rencontre une erreur en Python, il lève une exception. Les exceptions sont perturbatrices car elles provoquent le blocage du programme et l'arrêt de son exécution. Cependant, vous pouvez intercepter et gérer les exceptions pour empêcher le programme de planter. Vous pouvez utiliser l'instruction pass si vous ne voulez rien faire de particulier pour gérer l'erreur. Voici un exemple :

try:
    # code that will definitely raise an exception
    raise Exception('Some exception')
except:
    pass

Si vous exécutez le code ci-dessus, rien ne se passe. En effet, l'exception est déclenchée et gérée par le code du bloc except. Mais ce code ne fait rien, donc rien ne se passe. Normalement, à quelques exceptions près, vous voudriez les enregistrer ou les gérer avec élégance. Mais si vous ne voulez rien faire, c'est ainsi que vous le feriez.

How Does the Pass Statement Differ from Break and Continue?

Les autres mots-clés que vous pourriez rencontrer sont break et continue. En bref, je vais vous expliquer ce qu'ils font afin que vous puissiez voir en quoi ils diffèrent de l'instruction pass.

Déclaration de rupture

L'instruction break est utilisée pour sortir d'une boucle. Toute autre itération suivante de la boucle est alors annulée. Par exemple, supposons que vous écriviez une fonction de recherche linéaire. Lorsque l'élément est trouvé, il n'y a aucune raison de continuer à itérer jusqu'à la fin de la liste. Il serait logique de sortir de la boucle. Donc, vous utiliseriez l'instruction break. Voici un exemple de fonction de recherche linéaire :

def linear_search(values, search_value):
    for i in range(len(values)):
        if values[i] == search_value
            print("Value found at index", i)
            break

Continuer la déclaration

L'instruction continue est utilisée pour ignorer l'itération en cours dans la boucle. Si vous parcourez une liste de nombres, lorsque votre programme rencontre une instruction continue, il arrête l'itération en cours et passe à l'itération suivante. La boucle continue de s'exécuter. Voici un exemple de fonction qui utilise l'instruction continue. Le programme double tous les nombres impairs, donc une liste ne contient que des nombres pairs.

def make_even(nums):
    for i in range(len(nums)):
        if nums[i] % 2 == 0:
            # If the num is already even we jump to the next iteration using continue
            continue
        
        # Only odd numbers will get to this point
        # We double the number so it becomes even
        nums[i] *= 2

Heureusement, en comprenant les instructions break et continue, vous avez réussi à les différencier de l'instruction pass.

Best Practices for Using the Pass Statement

✅ N'oubliez pas que l'instruction pass est généralement utilisée comme espace réservé temporaire ; n'oubliez pas de remplacer l'instruction pass par le code réel lorsque vous êtes prêt.

✅ Si vous utilisez la déclaration de passe pour autre chose que comme espace réservé temporaire, incluez un commentaire expliquant pourquoi elle est là.

Mot de la fin

Dans cet article, j'ai expliqué l'instruction pass en Python, un mot-clé utile qui vous permet de diviser pour mieux régner lors de l'écriture de code. L'instruction pass est également couverte par Python Documentation.

Ensuite, consultez le types d'erreurs Python courants et comment les résoudre.

  • Anesu Kafesu
    Auteur
    Développeur web full stack et rédacteur technique. En train d'apprendre l'IA.
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder