• Martes 16 de Abril de 2024, 23:02

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - eduardoemen

Páginas: [1]
1
Python / Re:Aprendiendo Python
« en: Jueves 23 de Marzo de 2017, 23:40 »
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:

>>>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
class porcentajeGC:
 
    def contadorGC (self,genome):
      c=genome.count("C")
      g=genome.count("G")
      totalGC= (g+c/float(len(genome)))
 
      return totalGC


archivo 2:
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!!

Páginas: [1]