Killtrojan te invita a participar como usuario en nuestra comunidad. Registrate y podrás participar en todos nuestros subforos y ayudarás a crecer nuestra comunidad.

Si te gusta la informática,la seguridad, el análisis de malware o tienes problemas con virus o troyanos,no te lo pienses.


Registrarte en el foro no te llevará mas de un minuto.

[Python] Creando nuestros propios módulos [By Invisible_Hack]

Ver el tema anterior Ver el tema siguiente Ir abajo

[Python] Creando nuestros propios módulos [By Invisible_Hack]

Mensaje  invisible_hack el Dom Nov 14, 2010 7:25 pm

En este tutorial intentaré explicar, de la forma más sencilla y clara que pueda, cómo podemos crear nuestros propios módulos en Python. Pero vamos por partes, como dijo Jack el Destripador.

¿QUÉ ES UN MÓDULO?

Podría definirse un módulo como un archivo, dentro del cual, hay funciones que pueden ser ejecutadas e interpretadas por el compilador. Cuando programamos en Python siempre solemos usar módulos, pero esos que usamos ya los trae el propio lenguaje de serie. En este tutorial, aprenderemos a crear los nuestros propios.

Como sabemos, para decir que usamos un módulo, se usa la sentencia import, por ejemplo, si queremos trabajar con funciones matemáticas, tendremos que importar el módulo math, para después poder llamar a las funciones que hay dentro de este módulo, y trabajar con ellas.

Luego continuamos el código con las instrucciones que sean. Ahora vamos al objetivo del tutorial, poder crear nuestros propios módulos, con sus propias funciones internas.

Creando nuestro propio módulo

Pues bien, ¿qué os parecería si pudieramos crear nuestro propio módulo, llamado por ejemplo "invisible", y pudieramos usarlo en otro programa?

Lo primero que haremos será crear un archivo Python con el siguiente código:

Código:

####################################################################
# invisible.py: ejemplo de creacion de modulos propios en Python  #
# Creado por: Invisible_Hack                                      #
# Version: Python 2.7                                              #
# Fecha: 14/11/2010                                                #
####################################################################
#Creamos el modulo llamado "invisible" que contendra cuatro funciones
#correspondientes a las cuatro operaciones matematicas basicas
import os
def suma(n,x):
    resul=n+x
    print 'La suma es',resul
def resta(n,x):
    resultado=n-x
    print 'La resta es',resultado
def multi(n,x):
    resul=n*x
    print 'La multiplicacion es',resul
def division(n,x):
    resulta=n/x
    print 'La division es',resulta

Un dato importante es que tenemos que crear el archivo invisible.py dentro de la carpeta de Python, es decir, en mi caso, como uso Python 2.7 pues la carpeta es "Python27", que la tengo dentro del disco duro, evidentemente.

Si no, dará error, porque si no, el programa no encontrará el módulo que le decimos.

Como véis, el módulo consta de 4 funciones, que corresponden a las cuatro operaciones matemáticas básicas.

A cada una de las funciones, le pasamos dos parametros, "n" y "x", y después, con esos dos parametros, hacemos lo conveniente en cada función (sumar, restar, multiplicar o dividir)

Ahora vamos a ver el módulo funcionando en otro programa. Eso sí, el programa es muy muy muy simple, pero es que el propósito de este tutorial es que se entienda, no hacer algo muy difícil.

Creamos otro archivo Python, llamado "comoquieras.py", con el siguiente código:

Código:

import invisible
import os
a=10
b=2
suma=invisible.suma(a,b);
resta=invisible.resta(a,b);
multi=invisible.multi(a,b);
division=invisible.division(a,b);
os.system("pause");

Como vemos, he importado el módulo llamado "invisible". Pero aquí hay otro aspecto importante a destacar, no se trata de importar solo el módulo y ya.

Vamos a ir analizando línea a línea:

Código:

import invisible

Importamos nuestro módulo creado, para poder hacer uso de las funciones que hay dentro.

Código:

import os

Importamos "os" para poder hacer una pausa al final del programa y que se muestre lo que debe.

Código:

a=10
b=2

Creamos las variables "a" y "b" y le damos a "a" el valor de 10 y a "b" el valor de 2

Código:

suma=invisible.suma(a,b);
resta=invisible.resta(a,b);
multi=invisible.multi(a,b);
division=invisible.division(a,b);

Aquí está yo diría que lo más importante del código. Como vemos, creamos una variable suma, y a esa variable le asignamos la función "suma", que es una de las funciones que creamos dentro de nuestro módulo "invisible.py"

Y hacemos lo mismo con las otras funciones, creando una variable para asignarsela a cada función de nuestro módulo. No debemos olvidarnos que hay que pasarle los parámetros "a" y "b", porque si no, la función no tendrá nada con qué operar. También podríamos hacerlo más interactivo, y dejar que el propio user metiera por consola los numeros con los que operar, pero, para que se entienda el tutorial, está bien así xD

Finalmente, la última línea es:

Código:

os.system("pause");

Para que, como dijimos arriba, haya una pausa al mostrarse los datos que mostrará el programa (para eso importamos "os" al principio, ¿recordáis?)

Lo que mostrará el programa por consola es:



La suma, resta, multiplicación y división de los dos numeros que le hemos pasado a las funciones del módulo como parametros, es decir, "a" y "b"

Como "a" estaba inicializada a 10 y "b" estaba inicializada a 2, lo que hizo el programa es las correspondientes operaciones con esos dos numeros

Como vemos, para llamar a las funciones dentro del módulo, hemos hecho, por ejemplo para la división:

Código:

division=invisible.division(a,b);

Asignamos la variable a la función "division", que es una de las funciones del módulo "invisible.py"

La sintaxis, como podeis ver, es:

nombre_del_modulo.funcion_a_llamar_del_modulo(parametro1, parametro 2...)

Esto es todo. Con las instrucciones contenidas en este tutorial ya estarás en condiciones de poder crear tu propio módulo con sus funciones.

El motivo del por qué crear módulos, es evidente: en lugar de programar todo desde cero, podemos usar en los programas módulos ya creados anteriormente, para poder llamarlos y usarlos directamente, sin tener que programarlo nuevamente.

Un saludo, espero que os sea útil el manual. :D

Licencia del manual

Podéis copiar este manual donde queráis, siempre que pongas bien claro que yo soy el autor del mismo. Soy partidario de compartir, pero claro, una cosa es compartir y otra cosa es que venga alguien haciendo copy/paste sin mencionar al verdadero autor y haciendo como que hizo él este tutorial...
avatar
invisible_hack
CoAdmin
CoAdmin

Posts : 496
KCoins : 814
Reputación : 7
Fecha de inscripción : 02/09/2009

Staff


Ver perfil de usuario http://www.elrincondeinvisible.blogspot.com

Volver arriba Ir abajo

Re: [Python] Creando nuestros propios módulos [By Invisible_Hack]

Mensaje  novlucker el Mar Nov 16, 2010 11:03 am

Bien explicado, ahora dos notas Razz

1 - Si el modulo esta en la misma carpeta del py principal que estamos creando, también alcanza. Tal como ocurre con las librerías dll que o bien estan dentro de system32, o van en la misma carpeta que el exe.

2 - Soy partidario de no poner print en los modulos salvo que se estrictamente necesario. Así que simplemente retorno los valores de las funciones y luego que quién importa el modulo lo imprima como quiera Razz
Algo así:
Código:
#Modulo más recortado xD - MiModulo.py

def suma(n,x):
    return=n+x

Código:
import MiModulo
a=50
b=60
n=MiModulo.suma(a,b)
print 'El resultado de la suma es %i' % n

Saludos

_________________
"Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro."
Albert Einstein

avatar
novlucker
Colaborador
Colaborador

Posts : 129
KCoins : 200
Reputación : 3
Fecha de inscripción : 25/09/2008

Staff


Ver perfil de usuario

Volver arriba Ir abajo

Re: [Python] Creando nuestros propios módulos [By Invisible_Hack]

Mensaje  Skapunky el Miér Nov 24, 2010 6:44 pm

Extacto, es mejor que el que lo importe utilize print, así el codigo se hace mucho mas reutilizable. Imagina que alguien usa la librería para hace rla operación y luego en vez de imprimirlo quiere hacer otra cosa.

El ejemplo perfecto, pero mejor eso del print, por ejemplo si fuera un modulo para cifrar una cadena, el programador seguramente querría hacer algo y no imprimirla posiblemente.

_________________
Normativa de la comunidad

twitter.com/infomalware

Killtrojan Software
avatar
Skapunky
Admin
Admin

Posts : 493
KCoins : 822
Reputación : 21
Fecha de inscripción : 16/06/2008

Premios :
Staff


Ver perfil de usuario http://www.killtrojan.net

Volver arriba Ir abajo

Re: [Python] Creando nuestros propios módulos [By Invisible_Hack]

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.