Python - NameError: global name "genoma" is not defined

   
Vista:

NameError: global name "genoma" is not defined

Publicado por Eduardo (11 intervenciones) el 28/03/2017 22:31:49
Hola a todos, alguien podría por favor darme una mano con esto que le llevo dando mil vueltas buscando y no me aclaro:


calcular.py
1
2
3
4
5
6
7
8
class Calcular:
      def __init__(self,genoma):
        self.genoma=genoma
    def porcentageGC(self):
        g=genoma.count("G")
        c=genoma.count("C")
        totalGC=float(g+c/len(genoma))
        return totalGC


llamadaCalcular.py
1
2
3
4
from calcular import Calcular
genoma="AGTCGTAGCTAGAT"
obj= Calcular(genoma)
obj.porcentageGC()

me aparece el error:
Traceback (most recent call last):
File "C:/Users/bianc/Desktop/python/llamadaCalcular.py", line 4, in <module>
print (obj.porcentageGC())
File "C:/Users/bianc/Desktop/python\calcular.py", line 6, in porcentageGC
g=genoma.count("G")
NameError: global name 'genoma' is not defined

¿Cómo podría solucionar ese error?

Muchas gracias de antemano y 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
Imágen de perfil de kip

NameError: global name 'genoma' is not defined

Publicado por kip (160 intervenciones) el 28/03/2017 23:53:47
Hola, el problema esta en que no accedes a la propiedad de la clase correctamente, tal como la asignaste debes recuperar el valor con this.variable, entonces:

1
2
3
4
5
6
7
8
9
10
class Calcular:
 
    def __init__(self,genoma):
        self.genoma = genoma
 
    def porcentageGC(self):
        g = self.genoma.count("G")
        c = self.genoma.count("C")
        totalGC = float(g + c / len(self.genoma))
        return totalGC

Nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

NameError: global name 'genoma' is not defined

Publicado por Eduardo (11 intervenciones) el 29/03/2017 00:13:50
Vale muchas gracias !! No comprendo muy bien self.genoma.count, es decir el argumento self se puede referenciar a un atributo genoma y éste (self.genoma) a su vez a un método( self.genoma.count) ? mil gracias de todas formas, un saludo kip!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar