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