Академический Документы
Профессиональный Документы
Культура Документы
1. En python vamos a crear clases, instanciar objetos, a los objetos le vamos a agregar atributos y
métodos y las clases las vamos a organizar en paquetes y módulos.
2. Para el nombre de las clases se utiliza el formato CamelCase que significa que la primera letra de
cada palabra que describe el nombre de la clase inicia con mayúscula.
3. El nombre de la clases inicia por la palabra class NombreClase y dos puntos class NombreClase:
La declaración import es usada para importar módulos, clases o funciones desde otros módulos.
Creamos los módulos alumnos.py, notas.py e informacion.py a los cuales podemos ingresar a sus clases
mediante la declaración import. Por ejemplo, el módulo alumnos puede importar clases desde el
módulo base de datos llamado basededatos.py
Ejemplo:
El módulo alumnos.py, el cual es el responsable de las consultas relacionadas con los alumnos. Esta
necesita instanciar la clase Database, de modo que se puedan ejecutar consultas de los alumnos en la
base de datos.
Import database
db = database.Database()
#hacer consultas en la base de datos
con el import database estamos importando todo el módulo database, con esto desde el módulo
alumnos tendremos acceso a todas las clases, métodos y funciones contenidos en el archivo database.py
con el from database import Database estamos importando solo la clase Database en el archivo
alumnos.py
podemos importar más de una clase como from database import Database,Tabla
podemos importar todas los objetos del módulo con from database import * (no recomendada)
Para acceder a la ayuda del docstring y obtener la información de una clase como Database, este lo
podemos hacer con el comando help(database.Database).
Paquetes
Nos permiten organizar los módulos aplicando algun tipo de gerarquía de estos elementos (modulos)
los paquetes son directorios que se crean y que permiten almacenar módulos . En otras palabras, un
paquete es una colección de módulos que se encuentran en un mismo directorio.
1. Import absolutos.
alumno = Alumno()
Importar directamente desde los paquetes: para realizar esto nos apoyamos en en el archivo
escolar/__init__.py , sobre el cual podemos definir variables y clases, las cuales quedarían accesibles
desde el propio paquete.
luego de esto, podemos acceder a la clase db desde el archivo main.py o desde cualquier otro archivo,
registrando from escolar import db
2. imports relativos
3. A veces podemos importar un objeto ya instanciado de una clase. Para esto dejamos el objeto
instanciado en el módulo origen.
Evitar que se ejecuten códigos en los módulos importados
Para asegurarnos que cualquier módulo en caso de ser importado no se ejecute alguna función, se debe
agregar a cada módulo el siguiente script. Esto debería ser una norma.
If __name__== “__main__”:
main()
así,
class ClaseUtil:
pass
def main():
util = ClaseUtil()
print(util)
if __name__==”__main__”:
main()
Acceso a datos (Encapsulamiento)
para definir los atributos o métodos privados en python, se inician los nombres de estos elementos con
dos lineas bajas así: __atributo, __metodo()
Al definir un método o un atributo como privado, si queremos acceder a estos elementos desde fuera de
la clase, con python debemos agregar una linea baja al nombre de la clase, así:
print(stringsecreto._StringSecreto__string_plano)
class StringSecreto:
### Un modo no totalmente seguro de almacenar un string secreto ###
def __init__(self, string_plano, frasePassword):
self.__string_plano = string_plano
self.__frasePassword = frasePassword
def decript(self, frasePassword):
if frasePassword == self.__frasePassword:
return self.__string_plano
else:
return 'Error, la clave no es correcta!'
Con esto, el desarrollador debe estar atento a que si quiere acceder a métodos o atributos privados, debe asegurarse de
usar la sintaxis _<NombreClase>
Para evitar esta compleja forma de manejar los métodos y clases privadas, se recomienda el uso de una sola línea al
inicio del nombre de estos elementos, asi:
class StringSecreto:
### Un modo no totalmente seguro de almacenar un string secreto ###
def __init__(self, string_plano, frasePassword):
self._string_plano = string_plano
self._frasePassword = frasePassword
def decript(self, frasePassword):
if frasePassword == self._frasePassword:
return self._string_plano
else:
return 'Error, la clave no es correcta!'