Latest web development tutorials

Los módulos de Python

Módulo le permite organizar lógicamente su código Python.

Asignar el código correspondiente en un módulo para hacer que su código sea más fácil de usar, más comprensible.

módulos de Python son objetos con el atributo de nombre aleatorio se utiliza para enlazar o de referencia.

En pocas palabras, el módulo es un código Python para guardar el archivo. Los módulos se pueden definir funciones, clases y variables. El módulo puede contener código ejecutable.

ejemplo

aname módulo de llamada en código Python, en general, se puede encontrar en un archivo llamado aname.py. El siguiente ejemplo es un simple support.py módulo.

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


declaración de importación

Se desea utilizar el archivo fuente de Python, basta con realizar otra declaración de importación en el archivo de origen, la sintaxis es la siguiente:

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

Cuando el intérprete se encuentra con la declaración de importación, si el módulo se importará en la ruta de búsqueda actual.

La ruta de búsqueda es un intérprete buscará primero una lista de todos los directorios. A medida que desea importar support.py módulo, es necesario poner el comando en la parte superior de la secuencia de comandos:

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

Los ejemplos de la salida anterior:

Hello : Zara

Un módulo sólo se importará una vez, no importa cuántas veces se ejecuta importación. Esto evita que el módulo de importación se ejecuta una y otra vez.



Desde sentencia import ...

Python le permite importar una declaración de una parte específica del módulo en el espacio de nombres actual. La sintaxis es la siguiente:

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

Por ejemplo, para importar la función de Fibonacci fib módulo, utilice la siguiente instrucción:

from fib import fibonacci

Esta declaración no fib todo el módulo en el espacio de nombres actual, sólo se fib carril de Fibonacci introducido en una sola aplicación tabla de símbolos global de este módulo de declaración.



A partir de ... * instrucción de importación

Todos los contenidos de un módulo están todos en el espacio de nombres actual son posibles, sólo tiene que utilizar la siguiente instrucción:

from modname import *

Esto proporciona una manera fácil de importar un módulo en todos los proyectos. Sin embargo, esta afirmación no debe ser demasiado para su uso.



módulo de posicionamiento

Cuando se importa un módulo, Python módulo analizador orden de búsqueda de posición es:

  • directorio actual
  • Si no está en el directorio actual, Python buscará en cada directorio de la PYTHONPATH variable de shell.
  • Si no puede encontrar, Python se verá en la ruta predeterminada. En UNIX, la ruta predeterminada suele ser / usr / local / lib / python /.

ruta de búsqueda de módulo se almacena en módulos del sistema sys.path variables. Variable contiene el directorio actual, PYTHONPATH y el directorio de instalación por defecto por el proceso de toma de decisiones.



variable de PYTHONPATH

Como una variable de entorno, por el PYTHONPATH montado en una lista de muchos de los directorios. shell PYTHONPATH sintaxis variable PATH y lo mismo.

En los sistemas Windows, el PYTHONPATH típica de la siguiente manera:

set PYTHONPATH=c:\python20\lib;

En sistemas UNIX, el PYTHONPATH típica de la siguiente manera:

set PYTHONPATH=/usr/local/lib/python


Los espacios de nombres y alcances

Variable es el nombre del objeto tiene un juego (identificador). Espacio de nombres es una variable que contiene el nombre de su (clave) y sus respectivos objetos son (valor) de los diccionarios.

Una expresión de Python se puede acceder a la variable espacio de nombres de espacio de nombres local y global. Si una variable local con el mismo nombre que una variable global, la variable local anulará la variable global.

Cada función tiene su propio espacio de nombres. Ámbito gobierna como métodos de clase y funciona normalmente.

Python inteligente adivina una variable es local o global, se supone que cualquier variable dentro de una asignación de función es local.

Por lo tanto, si se le da una asignación de variables globales de una función, se debe utilizar la sentencia global.

expresión global VarName le dice a Python, VarName es una variable global, lo que Python no encuentra esta variable en el espacio de nombres local.

Por ejemplo, definimos una variable de dinero en el espacio de nombres global. A continuación, dentro de la función asignada a la variable en dinero, a continuación, Python asumiremos que el dinero es una variable local. Sin embargo, no declaramos una variable local antes de acceder al dinero, el resultado es que habrá un error UnboundLocalError. Cancelación comentarios globales de los estados pueden resolver este problema.

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


función dir ()

función dir () es una lista de cadenas fila buena secuencia, el contenido es un nombre definido módulo.

Devuelve una lista de todos los módulos para dar cabida, variables y funciones definidas en un módulo. Un ejemplo simple es el siguiente:

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

Los ejemplos de la salida anterior:

['__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']

Aquí, cadena especial __name__ nombre de punto variable del módulo, __ punto file__ importar el nombre del fichero del módulo.



(globales y locales) () de función

Dependiendo de las llamadas locales, variables globales () y locales () función se puede utilizar para devolver el nombre de espacio de nombres global y local.

Si se llama a la gente dentro de la función (), retornos pueden acceder a todas las funciones en el nombre.

Si llama globales () dentro de la función devuelve todos los nombres de función en el acceso a la energía global.

Ambas funciones devuelven tipo es el diccionario. Por lo que el nombre que utilizamos las teclas () eliminación de la función.



Función de recarga ()

Cuando un módulo se introduce en una parte superior del módulo de la escritura del código se ejecuta sólo una vez.

Por lo tanto, si desea volver a ejecutar el módulo en la parte superior del código, puede utilizar la función de recarga (). Esta función se vuelve a importar antes de que el módulo importado. La sintaxis es la siguiente:

reload(module_name)

Aquí, module_name nombre del módulo que se coloca directamente, en lugar de una cadena. Por ejemplo, se desea sustituir el módulo hola, de la siguiente manera:

reload(hello)


Los paquetes de Python

El paquete es una estructura jerárquica de directorios, que define un paquete secundario por los módulos y sub-paquetes y subpaquetes el marco de otros componentes del entorno de aplicaciones Python.

Considere un archivo pots.py en el directorio telefónico. Este archivo tiene el siguiente código:

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

Del mismo modo, tenemos dos funciones diferentes para guardar el archivo:

  • Teléfono / Isdn.py que contiene la función RDSI ()
  • que contiene G3 función de teléfono / G3.py ()

Ahora, crear un archivo en el directorio __init__.py Teléfono:

  • Teléfono / __ init__.py

Al importar el teléfono, para poder utilizar todas las funciones que necesita para utilizar una declaración explícita de importación en años __init__.py, de la siguiente manera:

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

Cuando se agrega el código para __init__.py, el paquete de teléfono importado cuando estas clases están disponibles en el.

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

Los ejemplos de la salida anterior:

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

Como, por ejemplo, sólo tenemos una función en cada archivo, pero en realidad se puede poner un montón de funciones. También puede definir una clase de Python en estos archivos, y luego construir un paquete para estas clases.