2014-09-05 67 views
-4

我有两个文件a.py和b.py 在b.py有类定义如下:访问来自不同文件中的类变量

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

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

我想要的t1t2值在a.py 在文件a.py我已经进口b

from b import ii 
t1,t2=ii() 

但我得到一个错误。 class ii has no attribute 't1'

任何人都可以让我知道如何访问a.py

+0

您可能需要'返回self.t1,self.t2',返回值为'mm()' – GWW 2014-09-05 17:19:09

+0

您能显示多一点代码,包括带有a和b的导入吗?这段代码是否来自a.py或b.py?但是我现在正在@GWW – 2014-09-05 17:21:01

+2

我试着修复你的代码的格式,但是恐怕'ii'中的'self.mn()'调用没有任何意义,现在它是现在的样子。你能否用更完整的代码更新这个问题?很难猜测你所展示的是怎么回事。 – Blckknght 2014-09-05 17:30:11

回答

0

您必须调用ii类的函数mn才能设置变量t1 and t2。所以你必须这样做:

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

希望这给你一些想法。

+0

是的这个工程。谢谢 – 2014-09-05 20:24:27

0

这不是从你的问题,其中t1t2定义明确的价值t1t2。但是,在导入后b

import b 

有三种方式a.py可以看到t1(和t2,通过类比):

  1. b.t1 - 如果t1被定义为一个模块级全球,它直接存在于b.py的全局命名空间中。

  2. b.ii.t1 - 如果t1定义在ii内部的级别级别,它是一个类变量。

  3. inst = b.ii(); inst.t1 - t1被定义为一个实例变量对类的实例b.ii

否则,t1似乎是一个局部变量来某些功能或方法在b.py定义,并且是不可见的超出范围。