Maison  >  Article  >  développement back-end  >  D'où viennent les données du module Python ?

D'où viennent les données du module Python ?

anonymity
anonymityoriginal
2019-06-17 09:23:092038parcourir

D'où viennent les données du module Python ? La première chose que vous devez savoir est comment Python trouve ce module de package. Ensuite, si vous avez une compréhension plus approfondie du concept d'espace de noms, vous pouvez savoir d'où proviennent les données du module Python.

D'où viennent les données du module Python ?

Chemin de recherche

Lorsque vous importez un module, l'ordre de recherche de l'analyseur Python pour les emplacements des modules est :

1. Répertoire actuel

2. S'il ne se trouve pas dans le répertoire actuel, Python recherche tous les répertoires sous la variable shell PYTHONPATH.

3. Si aucun des deux n'est trouvé, Python vérifiera le chemin par défaut. Sous UNIX, le chemin par défaut est généralement /usr/local/lib/python/.

Le chemin de recherche du module est stocké dans la variable sys.path du module système. Les variables contiennent le répertoire courant, PYTHONPATH et le répertoire par défaut déterminé par le processus d'installation.

Espaces de noms et étendues

Les variables sont des noms (identifiants) qui ont des objets correspondants. Un espace de noms est un dictionnaire contenant des noms de variables (clés) et leurs objets correspondants (valeurs).

Une expression Python peut accéder aux variables dans l'espace de noms local et l'espace de noms global. Si une variable locale porte le même nom qu'une variable globale, la variable locale remplace la variable globale.

Chaque fonction a son propre espace de noms. Les règles de portée des méthodes de classe sont les mêmes que celles des fonctions régulières.

Python devine intelligemment si une variable est locale ou globale, en supposant que toute variable affectée dans une fonction est locale.

Par conséquent, si vous souhaitez attribuer une valeur à une variable globale au sein d'une fonction, vous devez utiliser l'instruction globale.

L'expression global VarName indiquera à Python que VarName est une variable globale, afin que Python ne recherchera pas cette variable dans l'espace de noms local.

Par exemple, nous définissons une variable Money dans l'espace de noms global. Nous attribuons ensuite une valeur à la variable Money dans la fonction, puis Python supposera que Money est une variable locale. Cependant, nous n'avons pas déclaré de variable locale Money avant d'y accéder, et le résultat est un UnboundLocalError. Ce problème peut être résolu en annulant le commentaire avant l'instruction globale.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money

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:
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