À propos de Python DanspassDéclarations,Ça semble simple(Seulement 4 Les lettres),Même les débutants qui n'ont aucune expérience de programmation peuvent rapidement maîtriser son utilisation.
Documents officiels L'introduction est très simple
En termes simples,,pass C'est une opération vide(null operation),Quand l'interpréteur l'exécute,En plus de vérifier si la syntaxe est légale,Sauter sans rien faire.
Il suit return、break、continue Et yield Par rapport à des opérations non vides comme,La plus grande différence est qu'il ne change pas l'ordre d'exécution du programme.C'est comme un commentaire que nous avons écrit,En plus d'occuper une ligne de code,Il n'y a pas d'impact sur la portée dans laquelle.
Mais,Si vous avez d'autres bases linguistiques,Vous pourriez être curieux:Pourquoi Python C'est unique. pass Déclarations,Et il n'y a pas d'autres langues?
Python Ce Design,Pour quelle raison exactement?
Il s'agit de résoudre les problèmes communs auxquels sont confrontés la plupart des langages de programmation,Ou parce qu'il a une nouvelle découverte,Donc créer une nouvelle identité?
En d'autres termes,:Python Pourquoi? pass Déclarations,Qu'est - ce qu'il peut résoudre?(Les avantages),Sans ça,Quels sont les problèmes(Mauvais endroit.)?
Et puis...,Cet article analyse deux dimensions.
1、Les gens.:Comme substituant d'espace
Je vois ça comme une façon de faire des commentaires concis,Ça veut dire...“Il faut d'abord réserver une place ici,Ajoutez des implémentations de code spécifiques plus tard”.
Comme à plusieurs niveaux if-elif-else Dans la structure, Nous pouvons d'abord écrire les conditions de jugement , Puis écrivez dans le bloc correspondant pass, Plus tard, nous améliorerons lentement .
Comme l'exemple donné ci - dessus , On pourrait commencer par écrire la classe / Nom de la fonction et son paramètre d'entrée ,Et sauter(pass)Code du corps, Remplissez lentement plus tard .
pass C'est facile à écrire, Et parce que c'est un mot clé ,IDE Donne une distinction de couleur évidente, C'est plus pratique que d'écrire des notes .
pass Comme substituant d'espace, Il est principalement pratique pour nous de concevoir des structures de code locales , Il y a un certain rappel auxiliaire .
Mais, Si, à titre d'annotation , C'est trop mince , C'est pas mieux que d'écrire “# todo: xxxx”, Ce dernier sera aussi IDE Mettre en évidence par couleur , Et ça veut dire plus clairement . Même si c'est facile à écrire , Mais il introduit aussi un mot - clé apparemment redondant pass.
Alors..., Du point de vue du substituant spatial ,pass Ce n'est pas un élément de conception nécessaire dans un langage de programmation .
C'est bon., Nous pouvons exprimer “ Il y a quelque chose ici , Mais pour l'instant ”Sémantique de, Mais sans ça , Peut être remplacé par un commentaire .
2、 Sur la machine : Pour l'intégrité grammaticale
Pour l'utilisation de l'article précédent ,pass La position dans le Code est théoriquement illimitée .
Mais, Nous utilisons le plus souvent pass Heure,En gros, c'est à la ligne suivante du point - virgule, Et dans le bloc de Code indenté par cette couche , Il n'y a qu'une seule déclaration .( Voir ci - dessus 3 Quelques exemples,Pour plus de commodité, Prenons l'exemple d'une fonction vide )
On peut imaginer, Si ce n'est pas écrit ,Que se passe - t - il??
La réponse est qu'une erreur d'indentation sera rapportée :IndentationError: expected an indented block
# De la fonction pass Supprimer,Des erreurs seront signalées
def func():
func()
Parce que Python Utilisez l'indentation pour diviser les blocs de code , Et un point - virgule indique qu'un nouveau bloc d'indentation doit apparaître , Donc cet exemple signale un bloc d'indentation manquant .
Si nous substituons les notes précédentes ,Regarde ce qui va se passer?
# De la fonction pass Remplacer par un commentaire
def func():
# todo: Il y a quelque chose ici ,Plus tard.
func()
Ça dit,Il y a des erreurs.:IndentationError: expected an indented block
La raison en est que l'annotation n'est pas un contenu syntaxique valide ,Il sera Python Interpréteur ignoré(ignore),Pas comme ça. pass C'est comme ça que “ Contenu syntaxique valide ,Mais sauter”.
C'est - à - dire,Le bloc de Code indenté doit contenir du contenu syntaxiquement significatif, Les exemples suivants sont valables :
def func():
"""C'est une chaîne."""
def func2():
123456
Python Lors de la définition de la fonction, Doit contenir un corps de fonction , C'est - à - dire qu'il contient à la fois la Déclaration et la définition des deux sémantiques , Vous ne pouvez pas utiliser la sémantique déclarée comme certaines langues ,C'est écrit comme suit:void test(); .
Mais,Parce que Python Pas d'accolades bouclées, Il ne peut pas définir directement une fonction vide comme certaines langues ,C'est écrit comme suit:void test(){} .
Synthèse de l'analyse ci - dessus,Python Lors de la définition d'une fonction vide,Doit avoir un corps de fonction valide,Il a donc été conçu pour représenter une opération vide pass Déclarations.Il est destiné à compléter l'intégrité syntaxique,Avec deux points,Équivalent d'une paire d'accolades bouclées vides dans d'autres langues.
Du point de vue de l'intégrité grammaticale , C'est un élément de conception nécessaire ,Si ce n'est pas le cas,, Doit également être remplacé par une déclaration vide similaire ou un symbole spécial .
Du côté humain ,pass Peut être représenté“Sauter temporairement”Signification de, Comme substituant temporaire , Il sera éventuellement remplacé par la mise en œuvre réelle du Code ; Pour les machines , Il peut représenter “Sauter directement”, Juste pour compléter la logique grammaticale , Ne sera pas remplacé par un autre code .
Aucune autre langue n'a de déclaration ou de symbole spécifique pour représenter ce substituant ( C'est - à - dire qu'il y a un manque de sémantique ), Mais ils n'ont pas non plus besoin de se concentrer sur la conception d'un mot - clé pour compléter l'intégrité syntaxique ( C'est - à - dire que la syntaxe est complète ).
Retour à la question au début de cet article:Python Pourquoi? pass Déclarations,Qu'est - ce qu'il peut résoudre?(Les avantages),Sans ça,Quels sont les problèmes(Mauvais endroit.)?
Python Utiliser pass Déclarations,C'est un bloc de code qui supporte des opérations purement vides(Fonction vide、Classe vide、Blocs de contrôle de circulation vides, etc),C'est bon.,Peut également exprimer la sémantique d'un substituant en plus.
Le premier est pour la machine ,Il doit y en avoir un., équivalent à l'effet des accolades bouclées vides dans d'autres langues ; Ce dernier est pour l'homme ,Non requis, Peut être exprimé par des notes ,Mais parce que Python J'ai conçu cette déclaration , Cette utilisation est parfois très pratique .
C'est tout ce que j'ai partagé,Pour en savoir plus python Knowledge Welcome to the public number:Python Cercle d'apprentissage de la programmation ,Envoyer “J” Disponible gratuitement,Partage quotidien des marchandises sèches