带有 tkinter 的 Python 命令行样式应用程序



在我目前正在处理的应用程序中,我想包含一个管理员可以访问某种命令行的功能。
这不是实际的命令行,而是在我定义的文本框中查找关键字,并使用输入参数运行其链接函数。
例如:

get user data: erikthered

。将self.user_data('erikthered')运行该方法,但我不确定如何在不使用evalexec等凌乱的东西的情况下优雅地完成此步骤。
理想情况下,这些功能也应该适用于多个参数。
如果这个问题被认为是主观的,我深表歉意,但我以前没有真正编程过这样的东西,我重视其他人的见解。
谢谢

更新使用exec执行此操作的一种方法是使用字典,如下所示:

    links = {'get users':'self.get_users(parameters)', 'get user data':'self.get_user_data(parameters)'}
    terminal = self.terminal
    line = str(terminal.index(INSERT).split('.')[0])
    #get index of line
    line = terminal.get(line+'.0', line+'.end')
    splitline = line.split(':')
    command = splitline[0]
    parameters = splitline[1].split(',')
    exec(links[command])

这是我必须获取用户键入的文本的代码,绑定到返回按。但我宁愿不使用exec.

如果你不想使用 exec ,你可以做一个函数字典:

def get_user_data(*args):
    print(*args)
# dictionary of functions
functions = {'get user data': get_user_data}
line = "get user data: erikthered, turtle"
# parse line
command, params = line.split(":")
params = [p.strip() for p in params.split(",")]
functions[command](*params)

最新更新