Python - __init__

   
Vista:

__init__

Publicado por Eduardo eledu998@hotmail.com (11 intervenciones) el 22/03/2017 11:00:53
Hola a todos! alguien podría por favor darme una mano con lo siguiente:

En este ejemplo (clases built-in de Biopython) se pueden poner argumentos (por ejemplo "AGTACACTGGT") dentro del paréntesis al instaciar la clase y crear el objeto:

1
2
3
4
>>>from Bio.Seq import Seq
>>> my_seq = Seq("AGTACACTGGT")
>>> my_seq
Seq('AGTACACTGGT', Alphabet())


Pero en este ejemplo que yo he creado:

archivo 1: porcentajeGC.py

1
2
3
4
5
6
7
8
class porcentajeGC:
 
    def contadorGC (self,genome):
      c=genome.count("C")
      g=genome.count("G")
      totalGC= (g+c/float(len(genome)))
 
      return totalGC


archivo 2:

1
2
3
4
5
6
from porcentajeGC import porcentajeGC
 
genome="ATCGATCGATC"
obj=porcentajeGC()
print(obj.contadorGC(genome))
print (len(genome))


si intento poner argumentos al instanciar la clase y crear el objeto:
#genome="ATCGATCGATC" (comento esta línea)
obj=porcentajeGC("ATCGATCGATC")

el resultado es: TypeError: this constructor takes no arguments


y si intento ejecutar en consola:
>>> from Bio.Seq import Seq
>>> obj=Seq()
es decir instanciar la clase sin argumentos me aparece el error:

TypeError: __init__() takes at least 2 arguments (1 given)

¿Por qué se pueden poner argumentos al instanciar en algunos ejemplos y en el que yo he creado no puedo?
y ¿por qué no puedo instanciar la clase sin argumentos ( como en mi ejemplo ) en otros casos?
He estado leyendo sobre __init__ pero ya en la práctica no lo tengo claro.


Ojalá haya sido explícito para facilitar una posible ayuda de vosotros.

Muchas gracias de antemano si alguien puede ayudarme con esto.

Un saludo a todos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Revisar política de publicidad