我使用EasyGui允许用户选择多个选项。每个选项都是一个功能,如果他们选择它们就可以运行。我尝试使用其他线程中建议的字典,但是我在实现它时遇到了问题(模块对象不可调用错误)。我有什么遗失的吗?
from easygui import *
import emdtest1
import emdtest2
import emdtest3
EMDTestsDict = {"emdtest1":emdtest1,
"emdtest2":emdtest2,
"emdtest3":emdtest3}
def main():
test_list = UserSelect()
for i in range(len(test_list)):
if test_list[i] in EMDTestsDict.keys():
EMDTestsDict[test_list[i]]()
def UserSelect():
message = "Which EMD tests would you like to run?"
title = "EMD Test Selector"
tests = ["emdtest1",
"emdtest2",
"emdtest3"]
selected_master = multchoicebox(message, title, tests)
return selected_master
if __name__ == '__main__':
main()
答案 0 :(得分:2)
您需要导入函数而不是模块...例如,如果您有一个名为emdtest1且具有已定义函数emdtest1的文件,则您将使用:
from emdtest1 import emdtest1
答案 1 :(得分:2)
当您想要将函数放入其中时,您将模块放入dict中。你正在做的是等同于说
import os
os()
当然,这没有任何意义。如果emdtest1
,emdtest2
和emdtest3
是包含函数的.py文件,则需要:
from emdtest1 import function_name
function_name
是您的功能名称。