[英]Python repeat function that calls functions
我有一个程序,用户应该可以从下拉列表中选择命令。 在此列表中,还有一个repeat命令,该命令基本上执行for循环的操作,因此,在repeat
和end repeat
之间的所有命令都应循环执行指定的次数。 看图片:
现在,我还不知道如何以编程方式处理重复功能。 我知道python处理对象之类的类,所以也许可以帮上忙,但是我有点迷路了。
此刻,我向处理命令执行的线程发送了一个字符串列表,该字符串被解析并执行了每个命令。
def command(self, item):
if item.startswith('Pan'):
... do stuff
elif item.startswith('...'):
... do something else
我将如何重写此代码,以便repeat
是可调用的函数/方法?
使一个函数multi_command
接受多个命令,并按顺序执行它们。 当此功能遇到“重复”时,请创建以下所有命令的列表,直到获得相应的“结束重复”为止。 然后,此新列表是您的总列表的子集。 使用此列表调用multi_command
,然后跳至“结束重复”之后的命令。
伪代码:
def multi_commands(items):
highest_idx_already_done = 0
for idx, item in enumerate(items):
if highest_idx_already_done > idx:
continue
if item == "repeat":
num_repeats = ...
sub_items = []
for sub_item in items[idx+1:]:
if sub_item == "end repeat":
break
sub_items.append(sub_item[5:]) # Skip indentation
highest_idx_already_done = idx + len(sub_items)
for _ in range(num_repeats):
multi_commands(sub_items)
else:
command(item)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.