manipulando clases

RadicalEd willian.radicaled en gmail.com
Mar Jul 8 18:14:58 CEST 2008


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