【问题标题】:Run Python Function within each Python file in a directory在目录中的每个 Python 文件中运行 Python 函数
【发布时间】:2016-01-14 20:12:50
【问题描述】:

我正在尝试找到一种自动对一些学生的代码进行评分的好方法。每个学生都将提交一个名称类似于homework1_studentName.py 的文件,我将把它们全部下载并放在一个文件夹中。

现在每个学生的文件中都应该有一堆函数,比如我要评分的def question1(args):。我的目标是在该目录中创建一个评分脚本,该脚本遍历每个学生的模块,导入代码,针对一些预定义的测试用例运行函数,然后打印输出。有没有办法很好地做到这一点?

只运行一次分级脚本(在下载所有代码后)比必须单独分级每个文件节省大量时间。

【问题讨论】:

标签: python import module


【解决方案1】:

导入模块后,您可以使用字符串动态访问函数,如下所示:

import students_code

def run(function_name, module_name):
  getattr(module_name, function_name)()
  #this will call module_name.function_name()

run("question_1", students_code)

也许如果你为每个分配都有一个配置文件,你可以自动运行。您还可以使用 run 函数循环遍历 dir(the_module)

要自动测试他们的代码,请查看:https://docs.python.org/2/library/unittest.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多