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

2024-09-29 17:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用EasyGui允许用户选择多个选项。每个选项都是一个函数,如果他们选择了它,就可以运行它。我尝试使用其他线程中建议的字典,但在实现它时遇到了困难(Module对象不是可调用错误)。我有什么遗漏吗?在

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()

Tags: intestimportmessageifmaindef选项
2条回答

当你想在dict中放入函数时,你把模块放入dict中。你所做的就相当于说

import os
os()

当然,这毫无意义。如果emdtest1emdtest2和{}是包含函数的.py文件,则需要:

^{pr2}$

其中function_name是函数的名称。在

你需要导入函数而不是导入模块。。。例如,如果您有一个名为emdtest1的文件,其中定义了一个函数emdtest1,则可以使用:

from emdtest1 import emdtest1

相关问题 更多 >

    热门问题