如果用户选择在Python中运行函数(EasyGui)

时间:2014-05-23 18:44:17

标签: python function user-input easygui

我使用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()

2 个答案:

答案 0 :(得分:2)

您需要导入函数而不是模块...例如,如果您有一个名为emdtest1且具有已定义函数emdtest1的文件,则您将使用:

from emdtest1 import emdtest1

答案 1 :(得分:2)

当您想要将函数放入其中时,您将模块放入dict中。你正在做的是等同于说

import os
os()

当然,这没有任何意义。如果emdtest1emdtest2emdtest3是包含函数的.py文件,则需要:

from emdtest1 import function_name

function_name是您的功能名称。