manipulando clases
inf200468 en ucf.edu.cu
inf200468 en ucf.edu.cu
Mar Jul 8 17:26:43 CEST 2008
Hola:
sigo con algunas dudas con lo de la herencia, si yo declaro la clase padre y
luego dentro de una funcion de la clase hija necesito llamar a un metodo de la
clase padre , tengo que instanciarla dentro del metodo o puedo llamar al metodo por su
nombre___
otra duda es que si todas las clases tienen que tener declarado un metodo
__init__ o tienen uno por defecto
y la otra es que si tengo que tener todas las
clases en un mismo script
les envio lo que he hecho para si pueden me digan si esta
bien orientado , porque lo que es funcionar , funciona
import sys
import psycopg2
import os
class Conexion:
def __init__(self):
self.dbname="dbservicios"
self.user="postgres"
self.host="127.0.0.1"
self.password="pepe"
def conectar(self):
try:
conn =
psycopg2.connect("dbname=%s user=%s host=%s password=%s"%
(self.dbname,self.user,self.host,self.password))
except:
print "Error
de conexion"
sys.exit()
return conn
def Commit(self,conex):
conex.commit()
def EjecutarConsulta(self,conex,sql,params):
cursor = conex.cursor()
cursor.execute(sql,params)
class AnalizadoraAccessApache(Conexion):
"""Esta clase almacena en la bd el contenido del
access.log de apache2"""
def FiltrarAccess(self):
if(os.path.exists('D://a.log')):
try:
fichero = open('D://a.log','r')
except:
print 'no se pudo abrir el fichero'
sys.exit()
Conexion.__init__(self) #instanciando la clase conexion
conex =
Conexion.conectar(self) # se conecta
linea =
fichero.readline()
while (linea):
pica = linea.split()
self.ip_cliente=pica[0]# IP
fecha = pica[3].split("[")
fecha = fecha[1].split(":")
self.fecha=fecha[0]#fecha
self.hora=fecha[1]+":"+fecha[2]+":"+fecha[3]#hora
metodo = pica[5].split("\"")
self.metodo=metodo[1]# METODO
self.recurso=pica[6]# RECURSO
protocolo = pica[7].split("\"")
self.protocolo=protocolo[0]
# PROTOCOLO
self.codigo_estado=pica[8] # CODIGO
url=pica[10].split("\"") # URL
self.url=url[1]
if(pica[9]=="-"): # TAMA?O
pica[9]='0'
self.tamano=pica[9]
idlog='104'
params=(self.ip_cliente,self.fecha,self.hora,self.metodo,self.recurso,self.protocolo,self.codigo_estado,self.tamano,self.url,idlog)
sql="""insert into acceso_apache
(ip_cliente,fecha,hora,metodo,recurso,protocolo,codigo_estado,tamano,url,id_log) values
(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"""
Conexion.EjecutarConsulta(self,conex,sql,params)
Conexion.Commit(self,conex)
linea =
fichero.readline()
#######################################################################################
s=AnalizadoraAccessApache()
s.FiltrarAccess()
--------------------------------
Servicio del Grupo de Redes
Universidad de Cienfuegos
Contacto: adminred en ucf.edu.cu
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es