我正在使用Python 2.7,我正在使用Python制作一个简单的分级器。这个评分者做的是:
现在所有的学生都有相同的文件名' 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文件中导入具有相同名称的方法,每次都覆盖函数定义。
答案 0 :(得分:0)
我认为import_module()会做你想做的事。
from importlib import import_module
...
module = import_module(<module_to_import>)
output_student = module.functionName(functionArguments)