Tengo dos archivos a.py y b.py En b.py hay una clase definida de la siguiente manera:

class ii(ldata) ..... 
      self.mn()

      def mn(self) .... 
          return t1,t2

Quiero los valores de t1 y t2 en a.py En el archivo a.py he importado b

from b import ii 
t1,t2=ii()

Pero me sale un error. class ii has no attribute 't1'

¿Alguien puede decirme cómo acceder al valor t1 y t2 en a.py

-4
Sangeeta Vinoth 5 sep. 2014 a las 21:16

2 respuestas

La mejor respuesta

Debe llamar a la función mn desde la clase ii para poder establecer las variables t1 and t2. Entonces tienes que hacer algo como:

import b
ii iclass
t1,t2 = iclass.mn()

Espero que esto te de alguna idea.

0
srsci 5 sep. 2014 a las 18:54

No queda claro en su pregunta dónde se definen t1 y t2. Sin embargo, después de importar b con

import b

Hay tres formas en que a.py puede ver t1 (y t2, por analogía):

  1. b.t1: si t1 se define como un nivel global de módulo, existe directamente en el espacio de nombres global de b.py.

  2. b.ii.t1: si t1 se define en el nivel de clase dentro de ii, es una variable de clase.

  3. inst = b.ii(); inst.t1 - t1 se define como una variable de instancia para instancias de la clase b.ii

De lo contrario, t1 parece ser una variable local para alguna función o método definido en b.py, y no es visible fuera de ese alcance.

0
chepner 5 sep. 2014 a las 18:40