我试图存储一个命令列表,以使用deque在Python中发送串行电缆。使用Deque.popleft作为函数的参数
我的函数“send_command”接受3个值;该命令,一个int。暂停和布尔等待。其定义如下。
def send_command(self, command, pause=0, wait=False):
我想这样做是,而不是调用这个函数像这样:
send_command("A234", 5, True)
......或者......
send_command("B4242")
我想能够在deque列表中存储命令并使用popleft函数来调用我的函数。这将让我做的事情,如:
CommandList = deque((['A234', 5, True], ['B4242']))
...和使用deque.append(),以此来不断添加的东西到列表中,这会再依次发送到我的send_command功能。当需要时(或者我的代码的连续部分可以做到这一点),我可以在列表中列出新命令。
我与实际使用的 CommandList.popleft,或双端队列列表作为args作为我send_command功能的任何部分挣扎的一部分。它看起来并不像以下那样简单:
send_command(CommandList.popleft)
我确定这很简单,但我无法弄清楚。
任何人都可以帮忙吗?
谢谢你亲切。
安迪
Ahhha!看起来工作的是... self.send_command(* self.CommandList.popleft() ) ...但是,这是否意味着我不能再这样调用我的函数:send_command(“A1234”,wait = True)还是有一种方法来存储deque?self.CommandList.append([ 'b23456',wait = True])不能正常工作有什么想法? – Schodemeiss 2010-07-14 20:41:21
是的,你可以。您可以使用** argdict将参数列表解压为* arglist和带有关键字参数的字典。但是,就像你写的那样,没有办法将它存储在一个整体中。存储准备好调用的闭包可能会更方便。 – unbeli 2010-07-14 20:45:31
查看更新的例子 – unbeli 2010-07-14 20:54:20