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