Python2:从多个文件导入相同的函数

时间:2017-01-24 04:42:08

标签: python python-2.7

我正在使用Python 2.7,我正在使用Python制作一个简单的分级器。这个评分者做的是:

  1. 迭代所有文件夹并通过添加 init .py
  2. 将文件夹作为模块导入
  3. 运行其中一个方法并将输出与预定义输出进行比较
  4. 如果输出相同,则将True指定为结果,否则为False
  5. 转到下一位学生并再次导入他/她的代码
  6. 现在所有的学生都有相同的文件名' test.py'和相同的功能名称 - 让我们说添加

    我的问题 - 似乎当Python从第一个学生的代码中导入该方法时,对其他学生来说也是如此。

    示例代码

    ## get the output of the function
    output = 5
    
    subdirectories = "contains the directory where all student codes are"
    
    # find python files inside each directory
    # copy the init file and run the code
    c = 0
    for student in subdirectories:
        copyfile(src, os.path.join(student,'__init__.py')) # to make the folder a package
        os.chdir(student)
    
        from test import * # test is the file name
    
        # this line below evaluates the same function again and again instead of importing the new method from a different student file
        output_student = eval( functionName + '('+functionArguments+')')
    

    问题 - 如何从多个Python文件中导入具有相同名称的方法,每次都覆盖函数定义。

1 个答案:

答案 0 :(得分:0)

我认为import_module()会做你想做的事。

from importlib import import_module
...
module = import_module(<module_to_import>)
output_student = module.functionName(functionArguments)