【问题标题】:Access a variable from a class from different file从不同文件的类中访问变量
【发布时间】:2014-09-05 17:16:38
【问题描述】:

我有两个文件 a.py 和 b.py 在 b.py 中有如下定义的类:

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

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

我想要 a.py 中 t1t2 的值 在文件 a.py 我已经导入 b

from b import ii 
t1,t2=ii()

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

谁能告诉我如何访问 a.py 中的值 t1t2

【问题讨论】:

  • 你可能需要return self.t1, self.t2,对于mm()的返回值
  • 你能显示更多代码吗,包括使用 a 和 b 的导入?这段代码是来自 a.py 还是 b.py?但我目前支持@GWW
  • 我已尝试修复您的代码格式,但恐怕ii 中的self.mn() 调用不像现在这样没有任何意义。你能用更完整的代码更新这个问题吗?很难猜测您所展示的内容是怎么回事。
  • 该代码不会给出该错误。
  • 代码太大不能放在这里,因为它在上传时说明太长了

标签: python class


【解决方案1】:

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

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

希望这能给你一些想法。

【讨论】:

    【解决方案2】:

    您的问题不清楚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 中定义的某些函数或方法的局部变量,并且在该范围之外不可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2020-06-28
      • 2013-08-03
      • 2014-08-11
      • 1970-01-01
      相关资源
      最近更新 更多