2024-04-20 11:12:01 发布
网友
我的数据结构如下
def fun(): print "fun" d=[('File',(('save',fun),('saveas',fun),)), ('Edit',('search',fun))]
像这样的输入
input = "File.save.saveas'
我要检索整个字符串中最后一个字符串的关联函数。这里是“saveas”函数
我怎么得到那个函数?。提前谢谢。你知道吗
有几个步骤:
您可以使用str.split分割.分隔符上的用户输入。
str.split
.
用[0]访问第一个字段,用[-1]访问最后一个字段。
[0]
[-1]
在主要选项上循环直到找到匹配项。
在次要选项上循环直到找到匹配项。
如果找不到匹配项,则引发一个值错误。
下面是一种编码方法:
def save_it(): print 'Saving' def edit_it(): print 'Edit' menu = [ ('File', ( ('save', save_it), ('saveas', save_it), )), ('Edit', ( ('search', edit_it), )), ] def dispatch(user_input): fields = user_input.split('.') major_choice = fields[0] minor_choice = fields[-1] for major, minors in menu: if major == major_choice: for minor, func in minors: if minor == minor_choice: func() return raise ValueError('No matching minor option: %r' % minor_choice) raise ValueError('No matching major option: %r' % major_choice) if __name__ == '__main__': dispatch('File.save.saveas') dispatch('Edit.search') dispatch('Edit.cut')
有几个步骤:
您可以使用
str.split
分割.
分隔符上的用户输入。用
[0]
访问第一个字段,用[-1]
访问最后一个字段。在主要选项上循环直到找到匹配项。
在次要选项上循环直到找到匹配项。
如果找不到匹配项,则引发一个值错误。
下面是一种编码方法:
相关问题 更多 >
编程相关推荐