manipulando clases

inf200468 en ucf.edu.cu inf200468 en ucf.edu.cu
Mar Jul 8 18:23:20 CEST 2008



entonces llamo al metodo de la clase padre , solo por su nombre, en la llamada tengo que
pasarle el self???


> 1) No tienes que instanciar un nuevo
método en la clase hija, si haces eso 
> se llamaría sobrecarga de
métodos y eso hace parte del polimorfismo. 
> 
> 2) El
método __init__ es el constructor de la clase. 
> 
> 3) Nop, para
eso puedes hacer un from tuarchivo import laclase 
> 
> On Tue, Jul 8,
2008 at 10:26 AM, <inf200468 en ucf.edu.cu> wrote: 
> 
>> 
>> 
>> 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 
>> 
>>
_______________________________________________ 
>> Lista de correo Python-es

>> http://listas.aditel.org/listinfo/python-es 
>> FAQ:
http://listas.aditel.org/faqpyes 
>> 
> 
> 
> 
> -- 
> The knowledge is the most dangerous 
> weapon &
SoloCodigo is the most important programing webforum. 
>
http://foros.solocodigo.com 
> _______________________________________________

> Lista de correo Python-es 
>
http://listas.aditel.org/listinfo/python-es 
> FAQ:
http://listas.aditel.org/faqpyes 



--------------------------------
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