1. ProgrammingPython¿Qué es un módulo Python?

Por Alan Shovic, John Shovic

Para todo el alboroto sobre los módulos de Python, un módulo es en realidad una cosa bastante simple. De hecho, un módulo Python es solo un archivo con una extensión .py que contiene código Python. Eso es. Entonces, cada vez que escribe código Python y lo guarda en un archivo .py, básicamente crea un módulo.

Eso no quiere decir que siempre tenga que usar ese código como módulo. Ciertamente, se puede tratar como una aplicación independiente. Pero si desea crear su propio módulo Python, con solo el código que necesita a menudo en su propio trabajo, ciertamente podría hacerlo.

programación de módulos de Python

Un módulo de Python también es solo un archivo con una extensión de nombre de archivo .py. El nombre del módulo es el mismo que el nombre del archivo (sin el .py). Como cualquier archivo .py, el módulo contiene código Python. Como ejemplo de trabajo, supongamos que desea tener tres funciones para simplificar las fechas de formato y los valores de moneda. Puede inventar cualquier nombre que desee para cada función. Para nuestro ejemplo de trabajo, usaremos estos tres nombres:

  • to_date (any_str): le permite pasar cualquier fecha de cadena (any_str) en formato mm / dd / aa o mm / dd / aaaa y devuelve un Python datetime.date que puede usar para los cálculos de fecha. mdy (any_date): le permite pasar cualquier fecha de Python o fecha y hora, y devuelve una fecha de cadena formateada en formato mm / dd / aaaa para mostrar en la pantalla. to_curr (any_num, len): le permite pasar cualquier número flotante de Python o número entero y devuelve una cadena con un signo de dólar inicial, comas en miles de lugares y dos dígitos para los centavos. El len es un número opcional para la longitud. Si se proporciona, el valor de retorno se rellenará a la izquierda con espacios para que coincidan con la longitud especificada

Así que aquí está todo el código para eso:

# Contiene funciones personalizadas para fechas y valores de moneda.
Importar fecha y hora como dt
def to_date (any_str):
"" "Convertir mm / dd / aa o mm / dd / aaaa cadena a datetime.date, o Ninguno si la fecha no es válida." ""
tratar:
si len (any_str) == 10:
the_date = dt.datetime.strptime (any_str, '% m /% d /% Y'). date ()
más:
the_date = dt.datetime.strptime (any_str, '% m /% d /% y'). date ()
excepto (ValueError, TypeError):
the_date = Ninguno
devolver la_fecha
def mdy (any_date):
"" "Devuelve una fecha de cadena en formato mm / dd / aaaa. Pase en fecha de Python o fecha de cadena en formato mm / dd / aaaa" ""
si escribe (any_date) == str:
any_date = to_date (anydate)
# Asegúrese de que se envíe un dateime
if isinstance (any_date, dt.date):
s_date = f "{any_date: '% m /% d /% Y'}"
más:
s_date = "Fecha inválida"
volver s_date
def to_curr (anynum, len = 0):
"" "Devuelve un número como una cadena con $ y comas. La longitud es opcional" ""
s = "Cantidad no válida"
tratar:
x = flotante (anynum)
excepto ValueError:
x = Ninguno
if isinstance (x, float):
s = '$' + f "{x:,. 2f}"
si len> 0:
s = s.rjust (len)
devoluciones

Puede crear el mismo archivo usted mismo y asígnele el nombre myfunctions.py si desea seguirlo. Observe que el archivo contiene solo funciones. Entonces, si lo ejecuta, no hará nada en la pantalla porque no hay ningún código que llame a ninguna de esas funciones.

Para usar esas funciones en cualquier aplicación o programa Python que escriba, primero asegúrese de copiar ese archivo myfunc.py en la misma carpeta que el resto del código Python que está escribiendo. Luego, cuando crea una nueva página, puede importar myfunc como módulo tal como lo haría con cualquier otro módulo creado por otra persona. Solo usa

importar myfunc

Tendrá que usar el nombre del módulo delante de cualquiera de las funciones que llame desde ese módulo. Entonces, si desea que el código sea un poco más legible, puede usar esto en su lugar:

importar myfunc como mi

Con eso como su línea de apertura, puede referirse a cualquier función en su módulo Python personalizado con my. como prefijo Por ejemplo, my.to_date () para llamar a la función to_date. Aquí hay una página que importa el módulo y luego prueba las tres funciones usando esa sintaxis:

# Importa todo el código de myfunc.py como mi.
importar myfunc como mi
# Necesita fechas en este código
desde datetime import datetime como dt
# Algunos datos de prueba simples.
string_date = "31/12/2019"
# Convertir cadena de fecha a datetime.date
print (my.to_date (string_date))
hoy = dt.today ()
# Muestra la fecha de hoy en formato mm / dd / aaaa.
print (my.mdy (hoy))
dollar_amt = 12345.678
# Mostrar este gran número en formato de moneda.
print (my.to_curr (dollar_amt))

También puede omitir el uso del prefijo si importa elementos por nombre. En este caso, eso significa que puede llamar a to_date () y mdy () y to_curr () sin usar my. prefijo. La primera línea de código debería ser

desde myfunc import to_date, mdy, to_curr

El resto del código sería el mismo que en el ejemplo anterior, excepto que puede dejar el my. prefijos como en el siguiente código:

# Importe todo el código de myfunc.py por nombre.
desde myfunc import to_date, mdy, to_curr
# Necesita fechas en este código
desde datetime import datetime como dt
# Algunos datos de prueba simples.
string_date = "31/12/2019"
# Convertir cadena de fecha a datetime.date
print (to_date (string_date))
hoy = dt.today ()
# Muestra la fecha de hoy en formato mm / dd / aaaa.
print (mdy (hoy))
dollar_amt = 12345.678
# Mostrar este gran número en formato de moneda.
print (to_curr (dollar_amt))

Echa un vistazo a estos 10 increíbles recursos de programación de Python para obtener más información.