0

注意:这个问题是对从其他文件添加函数到 Python 类的修改/扩展。这部分是因为imp已弃用。

上下文:我有一个大类文件(+5000 行),比如说MainClass.py。为了更好地划分我的代码,我想将相关函数移动到单独的子文件中,例如所需的目录结构可能类似于:

- my_package 
|
| - .__init__.py
| - MainClass.py
|
| - main_class_functions
| |  - .__init__.py
| |  - function_group_1.py
| |  - function_group_2.py
| |  ...

我希望能够加载这些函数并将它们添加到MainClass

目前我有:

# MainClass.py
import os
import importlib

class MainClass(object):
  def __init__(self):
    self._compartmentalized_functions_directory = 'main_class_functions'
    self._location = os.path.dirname(os.path.abspath(__file__))

  def load_functions(self):
    # absolute path to directory of where the function files are located
    function_files_directory = os.path.join(self.location, self._compartmentalized_functions_directory)

    #
    [importlib.import_module(file, os.path.join(function_files_directory, file)) for file in os.listdir(function_files_directory)]



# main_class_functions_1.py
def test(self):
  print("test")

但这会吐一个ImportError, 'main_class_functions_1' is not a package

(我还从链接的帖子中复制粘贴了代码,并试图查看它是否有效,但它没有)。

4

0 回答 0