Python:导入另一个.py文件

时间:2013-07-31 17:58:45

标签: python import function

我有一个类,我想通过执行以下操作导入def函数:

import <file>

但是当我试着打电话时,它说无法找到def。我也尝试过:

from <file> import <def>

然后它说全局名称'x'没有定义。

那我怎么能这样做呢?

编辑:

这是我想要做的一个例子。在file1.py我有:

var = "hi"

class a:
  def __init__(self):
    self.b()

  import file2

a()

并且在file2.py中我有:

def b(self):
  print(var)

它只是给了我一个错误。

1 个答案:

答案 0 :(得分:7)

import file2

加载模块file2并将其绑定到当前名称空间中的名称file2。来自b的{​​{1}}可用file2,而不是file2.b,因此无法将其识别为方法。您可以使用

修复它
b

将加载模块并将该模块中的from file2 import b 函数分配给名称b。不过我不推荐它。在顶级导入b并定义委托给file2的方法,或者定义一个可以继承的mixin超类,如果您经常需要在不相关的类中使用相同的方法。导入函数以将其用作方法会让人感到困惑,如果您尝试使用的函数是在C中实现的话,它会中断。