首页 > 解决方案 > Python:如何从另一个模块的类中访问函数?

问题描述

所以,我有一个如下的项目结构。

Project
   |
   |--- Module1
          |----- __init__.py 
          |----- A.py
          |----- 1B.py
                   |---- update()
   |--- Module2
          |----- __init__.py 
          |----- C.py
          |----- D.py
   |--- Tests
          |----- Test1.py

我对python中的模块化结构非常陌生。因此,我看到的所有示例都将init .py 作为空文件。我想它需要在那里才能使 Module1 成为module.

我正在尝试A.py导入Test1.py

1B.py有一个B有方法的类update(self,x)。文件名是故意的1B.py,因为我想知道如何导入以数字开头的文件和以字母开头的文件。

如何导入1B.pywhich is fromModule1然后使用update方法

import sys
sys.path.insert(0,"../")

class Test1(unittest.TestCase):
    def test_update(self):
        target = __import__("Module1.1B",fromlist=[])
        print(target.Solution)

我不确定我在这里做错了什么。

标签: pythonpython-3.xpython-import

解决方案


建议使用import_lib.import_module而不是__import__. 如文档所指定,您可以以绝对或相对术语指定 name 参数。

此外,您不需要使用: 只需使用(省略)sys.path.insert调用您的测试脚本。python -m pkg.script_name.py


推荐阅读