Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Python - Módulos

Página anteriorPágina siguiente

Un módulo le permite organizar lógicamente su código Python. Agrupar el código relacionado en un módulo hace que el código sea más fácil de entender y usar. Un módulo es un objeto de Python con atributos con nombres arbitrarios que puede enlazar y hacer referencia.

Simplemente, un módulo es un archivo que consta de código Python. Un módulo puede definir funciones, clases y variables. Un módulo también puede incluir código ejecutable.

Ejemplo

El código de Python para un módulo llamado aname normalmente reside en un archivo llamado aname.py . Aquí hay un ejemplo de un módulo simple, support.py

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

La importación Declaración

Puede usar cualquier archivo fuente de Python como módulo ejecutando una declaración de importación en algún otro archivo fuente de Python. La importación tiene la siguiente sintaxis −

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

Cuando el intérprete encuentra una declaración de importación, importa el módulo si el módulo está presente en la ruta de búsqueda. Una ruta de búsqueda es una lista de directorios que el intérprete busca antes de importar un módulo. Por ejemplo, para importar el módulo support.py, debe colocar el siguiente comando en la parte superior del script:

#!/usr/bin/python

# Import module support
import support

# Now you can call defined function that module as follows
support.print_func("Zara")

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Hello : Zara

Un módulo se carga solo una vez, independientemente del número de veces que se importe. Esto evita que la ejecución del módulo se repita una y otra vez si se realizan varias importaciones.

El desde...importar Declaración

de de Python le permite importar atributos específicos de un módulo al espacio de nombres actual. El desde...importar tiene la siguiente sintaxis −

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

Por ejemplo, para importar la función fibonacci desde el módulo fib, use la siguiente instrucción −

from fib import fibonacci

Esta instrucción no importa todo el módulo fib al espacio de nombres actual; simplemente introduce el elemento fibonacci del módulo fib en la tabla de símbolos globales del módulo de importación.

El desde...importar * Declaración

También es posible importar todos los nombres de un módulo al espacio de nombres actual usando la siguiente declaración de importación −

from modname import *

Esto proporciona una manera fácil de importar todos los elementos de un módulo al espacio de nombres actual; sin embargo, esta declaración debe usarse con moderación.

Ubicación de módulos

Cuando importa un módulo, el intérprete de Python busca el módulo en las siguientes secuencias −

La ruta de búsqueda del módulo se almacena en el sistema del módulo del sistema como sys.path variable. La variable sys.path contiene el directorio actual, PYTHONPATH y el valor predeterminado dependiente de la instalación.

El PYTHONPATH variables

PYTHONPATH es una variable de entorno que consta de una lista de directorios. La sintaxis de PYTHONPATH es la misma que la de la variable de shell PATH.

Aquí hay un PYTHONPATH típico de un sistema Windows −

set PYTHONPATH = c:\python20\lib;

Y aquí hay un PYTHONPATH típico de un sistema UNIX −

set PYTHONPATH = /usr/local/lib/python

Espacios de nombres y alcance

Las variables son nombres (identificadores) que se asignan a objetos. Un espacio de nombres es un diccionario de nombres de variables (claves) y sus correspondientes objetos (valores).

Una declaración de Python puede acceder a variables en un espacio de nombres local y en el espacio de nombres global . Si una variable local y una global tienen el mismo nombre, la variable local sombrea la variable global.

Cada función tiene su propio espacio de nombres local. Los métodos de clase siguen la misma regla de alcance que las funciones ordinarias.

Python hace conjeturas informadas sobre si las variables son locales o globales. Asume que cualquier variable a la que se le asigna un valor en una función es local.

Por lo tanto, para asignar un valor a una variable global dentro de una función, primero debe usar la instrucción global.

La sentencia varName global le dice a Python que VarName es una variable global. Python deja de buscar la variable en el espacio de nombres local.

Por ejemplo, definimos una variable Dinero en el espacio de nombres global. Dentro de la función Dinero , asignamos Dinero un valor, por lo tanto Python asume Dinero como una variable local. Sin embargo, accedimos al valor de la variable local Dinero antes de configurarlo, por lo que el resultado es UnboundLocalError. Descomentar la declaración global soluciona el problema.

#!/usr/bin/python

Money = 2000
def AddMoney():
   # Uncomment the following line to fix the code:
   # global Money
   Money = Money + 1

print Money
AddMoney()
print Money

La función dir()

La función integrada dir() devuelve una lista ordenada de cadenas que contienen los nombres definidos por un módulo.

La lista contiene los nombres de todos los módulos, variables y funciones que se definen en un módulo. El siguiente es un ejemplo simple −

Demostración en vivo
#!/usr/bin/python

# Import built-in module math
import math

content = dir(math)
print content

Cuando se ejecuta el código anterior, produce el siguiente resultado −

['__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í, la variable de cadena especial __name__ es el nombre del módulo y __file__ es el nombre de archivo desde el que se cargó el módulo.

Las globales() y locales() Funciones

Los globales() y locales() Las funciones se pueden usar para devolver los nombres en los espacios de nombres globales y locales dependiendo de la ubicación desde donde se llamen.

Si se llama a locals() desde dentro de una función, devolverá todos los nombres a los que se puede acceder localmente desde esa función.

Si se llama a globals() desde dentro de una función, devolverá todos los nombres a los que se puede acceder globalmente desde esa función.

El tipo de retorno de estas dos funciones es el diccionario. Por lo tanto, los nombres se pueden extraer usando la función keys().

La recarga() Función

Cuando el módulo se importa a un script, el código en la parte de nivel superior de un módulo se ejecuta solo una vez.

Por lo tanto, si desea volver a ejecutar el código de nivel superior en un módulo, puede usar reload() función. La función reload() importa de nuevo un módulo previamente importado. La sintaxis de la función recargar() es esta −

reload(module_name)

Aquí, nombre_módulo es el nombre del módulo que desea recargar y no la cadena que contiene el nombre del módulo. Por ejemplo, para recargar hola módulo, haga lo siguiente −

reload(hello)

Paquetes en Python

Un paquete es una estructura de directorio de archivos jerárquica que define un único entorno de aplicación de Python que consta de módulos y subpaquetes y sub-subpaquetes, etc.

Considere un archivo Pots.py disponible en Teléfono directorio. Este archivo tiene la siguiente línea de código fuente −

#!/usr/bin/python

def Pots():
   print "I'm Pots Phone"

De manera similar, tenemos otros dos archivos que tienen diferentes funciones con el mismo nombre que el anterior −

Ahora, cree un archivo más __init__.py en Teléfono directorio −

Para que todas sus funciones estén disponibles cuando haya importado Teléfono, debe colocar instrucciones de importación explícitas en __init__.py de la siguiente manera:

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

Después de agregar estas líneas a __init__.py, tendrá todas estas clases disponibles cuando importe el paquete Teléfono.

#!/usr/bin/python

# Now import your Phone Package.
import Phone

Phone.Pots()
Phone.Isdn()
Phone.G3()

Cuando se ejecuta el código anterior, produce el siguiente resultado −

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

En el ejemplo anterior, hemos tomado el ejemplo de una sola función en cada archivo, pero puede mantener múltiples funciones en sus archivos. También puede definir diferentes clases de Python en esos archivos y luego puede crear sus paquetes a partir de esas clases.


python

  1. Tipos de datos de Python
  2. Entrada, salida e importación de Python
  3. Operadores de Python
  4. Argumentos de la función de Python
  5. Módulos de Python
  6. Diccionario de Python
  7. Iteradores de Python
  8. Cierres Python
  9. Fecha y hora de Python
  10. Módulo de tiempo de Python
  11. Sueño de Python ()