Python:导入另一个.py文件

use*_*731 6 python import function

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

import <file>
Run Code Online (Sandbox Code Playgroud)

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

from <file> import <def>
Run Code Online (Sandbox Code Playgroud)

但后来它说没有定义全局名称'x'.

那我该怎么做呢?

编辑:

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

var = "hi"

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

  import file2

a()
Run Code Online (Sandbox Code Playgroud)

在file2.py我有:

def b(self):
  print(var)
Run Code Online (Sandbox Code Playgroud)

它只是给了我一个错误.

use*_*ica 7

import file2
Run Code Online (Sandbox Code Playgroud)

加载模块file2并将其绑定到file2当前命名空间中的名称.bfile2可作为file2.b,不b,所以它不被视为一个方法.你可以修复它

from file2 import b
Run Code Online (Sandbox Code Playgroud)

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