Table des matières
Qu'est-ce qu'un espace de noms
Scope détermine les noms que vous pouvez "voir"
Comment modifier les variables externes? Utiliser le monde et non local
Espaces de noms et FAQ de la portée
Maison développement back-end Tutoriel Python Expliquez des espaces de noms et de la portée Python.

Expliquez des espaces de noms et de la portée Python.

Jul 11, 2025 am 01:43 AM
python Espace de noms

Un espace de noms est une carte du nom à l'objet, et la portée détermine sa portée accessible. 1. L'espace de noms est divisé en trois types: intégré, module et fonction, chaque indépendant; 2. La portée est recherchée selon les règles LEGB, à savoir local, imbriqué, mondial et intégré; 3. Les mots clés globaux ou non locaux sont nécessaires pour modifier les variables externes; 4. Les problèmes courants incluent la modification des variables sans déclaration, l'accès aux variables en dehors des blocs en retrait et les noms d'importation de modules conflictuels, etc. La compréhension de ces concepts peut aider à écrire du code plus clair et plus contrôlable et à éviter les erreurs courantes.

Expliquez des espaces de noms et de la portée Python.

L'espace de noms et la portée de Python sont des concepts clés pour comprendre comment les variables sont accessibles et gérées dans un programme. Autrement dit, un espace de noms est une carte d'un nom à un objet , et la portée détermine quelles parties du programme peuvent être accessibles .

Expliquez des espaces de noms et de la portée Python.

Qu'est-ce qu'un espace de noms

Vous pouvez considérer l'espace de noms comme un dictionnaire: la clé est le nom de la variable et la valeur est l'objet correspondant à la variable. Chaque espace de noms est un ensemble indépendant de noms. Par exemple, les variables que vous définissez dans la fonction et les variables que vous définissez dans le module n'interfèrent pas entre elles.

Les espaces de noms communs comprennent:

Expliquez des espaces de noms et de la portée Python.
  • Espace de noms intégré: contient des fonctions intégrées comme print() et len() .
  • Espace de noms du module: chaque module importé a son propre espace de noms.
  • Espace de noms de fonction: les variables définies à l'intérieur de la fonction appartiennent à l'espace de noms de la fonction.

Les espaces de noms sont créés et détruits dynamiquement lorsque le code s'exécute. Par exemple:

  • L'espace de noms intégré est créé lorsque Python démarre.
  • Créez un espace de noms de module lors de l'importation d'un module.
  • Un espace de noms de fonction est créé lors de l'appel d'une fonction. Cet espace de noms est généralement détruit après le retour de la fonction.

Scope détermine les noms que vous pouvez "voir"

La portée se réfère à quels espaces de noms sont accessibles dans une certaine zone d'un programme. Il y a quatre niveaux de portée dans Python, appelés règles LEGB dans l'ordre de la recherche:

Expliquez des espaces de noms et de la portée Python.
  1. L (local) : à l'intérieur de la fonction actuelle
  2. E (entourer) : la portée des fonctions imbriquées externes
  3. G (global) : niveau de module ou portée globale
  4. B (intégré) : portée intégrée

Par exemple, vous comprendrez:

 x = "global"

def exter ():
    x = "entourer"

    def inner ():
        x = "local"
        imprimer (x) # imprimer local

    intérieur()

Dans cet exemple, la fonction inner() préfère utiliser x dans sa propre portée plutôt que la couche externe.


Comment modifier les variables externes? Utiliser le monde et non local

Par défaut, vous ne pouvez lire que les variables de portée extérieure et ne pouvez pas les modifier directement. Si vous souhaitez modifier les variables globales dans une fonction, vous devez utiliser global :

 comte = 0

De-incrément ():
    Compte mondial
    compter = 1

Si vous souhaitez modifier les variables externes non globales dans les fonctions imbriquées, vous devez utiliser nonlocal :

 def exter ():
    x = 10

    def inner ():
        x non local
        x = 1
        Imprimer (x)

    intérieur()

Ces deux mots clés vous aident à enfreindre les règles par défaut, mais veillez à utiliser, sinon le code deviendra difficile à suivre.


Espaces de noms et FAQ de la portée

Parfois, vous rencontrez ces situations:

  • Une variable est définie, mais l'erreur indique "variable référencée avant l'attribution" - cela peut être dû au fait que vous avez essayé de modifier la variable globale dans la fonction mais n'a pas global
  • Les variables définies dans les boucles ou si les instructions sont également accessibles à l'extérieur - car la portée de Python est délimitée par des fonctions, et non des blocs en retrait.
  • L'importation du même nom dans différents modules provoque des conflits - il est recommandé d'utiliser import module plutôt que from module import name pour éviter de polluer l'espace de noms

Comprendre les espaces de noms et les lunettes vous permet d'écrire un code plus clair et plus contrôlable. Bien que cela semble un peu abstrait au début, une fois que vous maîtrisez l'ordre de recherche LEGB et l'utilisation de global / nonlocal , vous pouvez éviter de nombreux bogues étranges.

Fondamentalement, c'est tout.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1535
276
Comment automatiser la saisie de données d'Excel à un formulaire Web avec Python? Comment automatiser la saisie de données d'Excel à un formulaire Web avec Python? Aug 12, 2025 am 02:39 AM

La méthode de remplissage des données Excel dans les formulaires Web à l'aide de Python est: utilisez d'abord des pandas pour lire les données Excel, puis utilisez le sélénium pour contrôler le navigateur pour remplir et soumettre automatiquement le formulaire; Les étapes spécifiques incluent l'installation de bibliothèques Pandas, OpenPyxl et Selenium, en téléchargeant le pilote de navigateur correspondant, en utilisant des pandas pour lire le nom, le courrier électronique, le téléphone et d'autres champs dans le fichier data.xlsx, le lancement du navigateur via le sélénium pour ouvrir la page Web cible, localiser les éléments de formulaire et remplir le traitement de données, en utilisant le formulaire Web pour traiter le contenu dynamique, ajouter le contenu de la charge dynamique, ajouter un traitement exception et traiter toutes les lignes de données dans une boucle.

Qu'est-ce que l'analyse des sentiments dans le trading des crypto-monnaies? Qu'est-ce que l'analyse des sentiments dans le trading des crypto-monnaies? Aug 14, 2025 am 11:15 AM

Table des matières Qu'est-ce que l'analyse des sentiments dans le trading des crypto-monnaies? Pourquoi l'analyse des sentiments est importante dans l'investissement des crypto-monnaies sources clés de données d'émotion a. Plateforme de médias sociaux b. Médias d'information c. Outils pour l'analyse des sentiments et la technologie Utilisé couramment des outils dans l'analyse des sentiments: Techniques adoptées: intégrer l'analyse des sentiments dans les stratégies de trading comment les traders l'utilisent: Exemple de stratégie: supposer le scénario de trading BTC Réglage du scénario: Signal émotionnel: interprétation des commerçants: Décision: Résultats: Limitations et risques de l'analyse des sentiments en utilisant de plus en plus les émotions pour le commerce des crypto-oreilles. Une récente étude en 2025 de Hamid

Comment gérer les grands ensembles de données dans Python qui ne rentrent pas dans la mémoire? Comment gérer les grands ensembles de données dans Python qui ne rentrent pas dans la mémoire? Aug 14, 2025 pm 01:00 PM

Lors du traitement de grands ensembles de données qui dépassent la mémoire dans Python, ils ne peuvent pas être chargés en RAM en même temps. Au lieu de cela, des stratégies telles que le traitement de la chasse, le stockage du disque ou le streaming doivent être adoptées; Les fichiers CSV peuvent être lus en morceaux via les paramètres ChunkSize de Pandas et le bloc traité par bloc. La daste peut être utilisée pour réaliser la parallélisation et la planification des tâches similaires à la syntaxe Pandas pour prendre en charge les opérations de données de mémoire importantes. Écrivez les fonctions du générateur pour lire les fichiers texte ligne par ligne pour réduire l'utilisation de la mémoire. Utilisez le format de stockage en colonne de parquet combiné avec Pyarrow pour lire efficacement des colonnes ou des groupes de lignes spécifiques. Utilisez Memmap de Numpy pour mapper la mémoire de grands tableaux numériques pour accéder aux fragments de données à la demande, ou stocker des données dans des données légères telles que SQLite ou DuckDB.

Comment déboguer votre code python Comment déboguer votre code python Aug 13, 2025 am 12:18 AM

Useprint () instructionSOcheckVariableValuesAndexEcutionflow, ajoutlabelsandtypesforclarity, andRemoveThembeForComting; 2.Ushepylepylebugger (pdb) withreakpoint () topauseeexecution, inspectvariables, andstepthroughcodeinteractive; 3.HandleExceptionsusin;

Comment déboguer le code Python dans le texte sublime? Comment déboguer le code Python dans le texte sublime? Aug 14, 2025 pm 04:51 PM

UsuBrimeText’sBuildSystemTorunpyThonscriptsandcatcherRorSpressingCtrl baftersettingthecorrectBuildSystemorCreatacustomone.2.InsertStrategicprint () StatementScocheckVariableValues, Types, etxExecutionflow, usingLabelSAndrepr () Forclarit

Comment déboguer un script python dans vscode Comment déboguer un script python dans vscode Aug 16, 2025 am 02:53 AM

Pour déboguer Python Scripts, vous devez d'abord installer l'extension Python et configurer l'interprète, puis créer un fichier lancé.json pour définir la configuration de débogage, puis définir un point d'arrêt dans le code et appuyez sur F5 pour démarrer le débogage. Le script sera interrompu au point d'arrêt, permettant de vérifier les variables et l'exécution étape par étape. Enfin, en vérifiant le problème en affichant la sortie de la console, en ajoutant des journaux ou en ajustant les paramètres, etc., pour s'assurer que le processus de débogage est simple et efficace après la correction de l'environnement.

Comment aplatir une liste imbriquée ou une liste de listes dans Python Comment aplatir une liste imbriquée ou une liste de listes dans Python Aug 12, 2025 am 09:49 AM

AplatinganestestListInpyThonConvertsalist avec les publistiquesIntoasingleflatlist et ThebestMethDependSonTherestDepthanddatasize.forone-levelnesting, uselistcomprehensionliny

Comment fonctionne le mot clé de rendement en python Comment fonctionne le mot clé de rendement en python Aug 15, 2025 am 08:23 AM

Le mot clé de rendement est utilisé pour définir une fonction de générateur, afin qu'il puisse suspendre l'exécution et le retour des valeurs un par un, puis se remettre de la pause; La fonction du générateur renvoie un objet générateur, a des caractéristiques d'évaluation paresseuses et peut enregistrer la mémoire. Il convient à la gestion des scénarios tels que des fichiers volumineux, des données de streaming et des séquences infinies. Le générateur est un itérateur qui prend en charge Next () et pour les boucles, mais ne peut pas être rembobiné et doit être recréé pour itérer à nouveau.

See all articles