Latest web development tutorials

Modules Python

Module vous permet d'organiser logiquement votre code Python.

Affecter le code correspondant dans un module pour rendre votre code plus facile à utiliser, plus compréhensible.

modules Python sont des objets dont l'attribut de nom aléatoire est utilisé pour lier ou de référence.

Autrement dit, le module est un code Python pour enregistrer le fichier. Les modules peuvent définir des fonctions, des classes et des variables. Module peut contenir du code exécutable.

exemple

Appelé module aname dans le code Python en général peut être trouvée dans un aname.py de fichier appelé. L'exemple suivant est un support.py module simple.

def print_func( par ):
   print "Hello : ", par
   return


instruction import

Voulez-vous utiliser le fichier source Python, il suffit de réaliser une autre instruction import dans le fichier source, la syntaxe est la suivante:

import module1[, module2[,... moduleN]

Lorsque l'interpréteur rencontre l'instruction import, si le module est importé dans le chemin de recherche en cours.

Le chemin de recherche est un interprète va d'abord rechercher une liste de tous les répertoires. Comme vous voulez importer le module support.py, vous devez mettre la commande en haut du script:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

Des exemples de sortie ci-dessus:

Hello : Zara

Un module ne sera importé une fois, peu importe combien de fois vous exécutez l'importation. Cela empêche le module d'importation est exécuté maintes et maintes fois.



De ... instruction import

Python vous permet d'importer une déclaration d'une partie déterminée du module dans l'espace de noms courant. La syntaxe est la suivante:

from modname import name1[, name2[, ... nameN]]

Par exemple, pour importer la fonction de fibonacci module fib, utilisez l'instruction suivante:

from fib import fibonacci

Cette déclaration ne fib pas l'ensemble du module dans l'espace de noms courant, il ne fera que fib Lane fibonacci introduit dans une seule mise en œuvre globale de la table des symboles de ce module de déclaration.



De ... import * déclaration

Tout le contenu d'un module sont tous dans l'espace de noms courant sont possibles, il suffit d'utiliser la déclaration suivante:

from modname import *

Cela fournit un moyen facile d'importer un module dans tous les projets. Toutefois, cette déclaration ne devrait pas être trop à utiliser.



Module de positionnement

Lorsque vous importez un module, Python parser position du module de recherche ordre est:

  • répertoire courant
  • Sinon dans le répertoire courant, Python recherche chaque répertoire du PYTHONPATH variable de shell.
  • Si vous ne trouvez pas, Python se penchera sur le chemin par défaut. Sous UNIX, le chemin par défaut est généralement / usr / local / lib / python /.

chemin de recherche de module est stocké dans les modules du système variables sys.path. Variable contient le répertoire courant, PYTHONPATH et le répertoire d'installation par défaut par le processus de prise de décision.



la variable PYTHONPATH

Comme une variable d'environnement, PYTHONPATH par la montée dans une liste de plusieurs des répertoires. PYTHONPATH shell variable PATH syntaxe et la même chose.

Sur les systèmes Windows, le PYTHONPATH typique comme suit:

set PYTHONPATH=c:\python20\lib;

Sur les systèmes UNIX, le PYTHONPATH typique comme suit:

set PYTHONPATH=/usr/local/lib/python


Namespaces et les champs

Variable est le nom de l'objet a un appariement (identifiant). Namespace est une variable qui contient le nom de leur (touche) et leurs objets respectifs sont (valeur) des dictionnaires.

Une expression de Python peut accéder à la variable namespace namespace local et global. Si une variable locale avec le même nom qu'une variable globale, la variable locale remplacera la variable globale.

Chaque fonction a son propre espace de noms. Champ d'application des règles que les méthodes de classe et fonctionne normalement.

Python deviner intelligemment une variable est locale ou globale, il est supposé que toute variable dans une affectation de fonction est locale.

Par conséquent, si vous donnez une affectation variable globale dans une fonction, vous devez utiliser l'instruction globale.

expression globale VarName dit Python, VarName est une variable globale, de sorte que Python ne trouve pas cette variable dans l'espace de noms local.

Par exemple, nous définissons un argent variable dans l'espace de noms global. Nous avons ensuite au sein de la fonction assignée à l'argent variable, Python supposerons que l'argent est une variable locale. Cependant, nous ne déclarons une variable locale avant d'accéder à l'argent, le résultat est qu'il y aura une erreur UnboundLocalError. Annulation commentaires généraux des états peuvent résoudre ce problème.

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


fonction dir ()

fonction dir () est une liste de chaînes rangée bonne séquence, le contenu est un nom défini du module.

Retourne une liste de tous les modules pour accueillir, variables et fonctions définies dans un module. Un exemple simple est la suivante:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入内置math模块
import math
 
content = dir(math)
 
print content;

Des exemples de sortie ci-dessus:

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

Ici, chaîne spéciale __name__ variables nom du point du module, __ point FILE__ importer le nom de fichier du module.



globals () et la population locale () fonction

Selon les appels locaux, globals () et la population locale () peut être utilisée pour renvoyer le nom global et local namespace.

Si vous appelez les gens du coin intérieur de la fonction (), les rendements peuvent accéder à toutes les fonctions dans le nom.

Si vous appelez globals () dans la fonction renvoie tous les noms de fonction dans l'accès à l'énergie mondiale.

Les deux fonctions renvoient type est le dictionnaire. Ainsi, le nom que nous utilisons les touches () de suppression de la fonction.



fonction reload ()

Quand un module est introduit dans une partie supérieure du module de script du code est exécuté une seule fois.

Donc, si vous voulez ré-exécuter le module dans la partie supérieure du code, vous pouvez utiliser la fonction reload (). Cette fonction sera ré-importé avant le module importé. La syntaxe est la suivante:

reload(module_name)

Ici, module_name nom du module pour être placé directement, au lieu d'une chaîne. Par exemple, vous souhaitez remplacer le module de bonjour, comme suit:

reload(hello)


Packs Python

Package est une structure de répertoire hiérarchique, qui définit un package enfant par les modules et les sous-packages et subpackages sous d'autres composantes de l'environnement d'application Python.

Considérons un fichier pots.py dans le répertoire du téléphone. Ce fichier contient le code source suivant:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
   print "I'm Pots Phone"
   

De même, nous avons deux fonctions différentes pour enregistrer le fichier:

  • Téléphone / Isdn.py contenant la fonction Isdn ()
  • Téléphone / G3.py contenant la fonction G3 ()

Maintenant, créez un __init__.py de fichier dans Phone Directory:

  • Téléphone / __ init__.py

Lorsque vous importez le téléphone, pour être en mesure d'utiliser toutes les fonctions dont vous avez besoin d'utiliser une des déclarations d'importation explicites dans les années __init__.py, comme suit:

from Pots import Pots
from Isdn import Isdn
from G3 import G3

Lorsque vous ajoutez le code à __init__.py, paquet de téléphone importé lorsque ces classes sont tous disponibles sur le.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

Des exemples de sortie ci-dessus:

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

Comme, par exemple, nous avons une seule fonction dans chaque fichier, mais en fait, vous pouvez mettre beaucoup de fonctions. Vous pouvez également définir une classe Python dans ces fichiers, puis construire un paquet pour ces classes.