Je tente de stocker une liste de commandes pour envoyer un câble série en utilisant deque en Python.Utilisation de Deque.popleft comme arguments pour la fonction
Ma fonction "send_command" accepte 3 valeurs; La commande, un int. pause et une attente booléenne. sa définition est la suivante.
def send_command(self, command, pause=0, wait=False):
Ce que je voudrais faire est, plutôt que d'appeler cette fonction comme ceci:
send_command("A234", 5, True)
... ou ...
send_command("B4242")
J'aimerais pour pouvoir stocker des commandes dans une liste de deque et utiliser la fonction popleft pour ensuite appeler ma fonction. Cela me permettrait de faire des choses telles que:
CommandList = deque((['A234', 5, True], ['B4242']))
... et utiliser le deque.append() comme un moyen de continuer à ajouter des choses à la liste, qui à son tour envoyé à ma fonction send_command . Je pourrais alors laisser tomber dans et hors de la liste de nouvelles commandes quand elles sont nécessaires (ou aussi rapidement que la partie sérielle de mon code peut faire).
La partie avec laquelle je me bats est en fait en utilisant CommandList.popleft, ou n'importe quelle partie de la liste de deque en tant qu'args pour ma fonction send_command. Il ne semble pas aussi simple que:
send_command(CommandList.popleft)
Je suis sûr que c'est quelque chose de simple, mais je ne peux pas le comprendre.
Quelqu'un peut-il aider?
Merci beaucoup.
Andy
Ahhha! Ce qui semble fonctionner, c'est ... self.send_command (* self.CommandList.popleft() ... Cela signifie-t-il que je ne peux plus appeler ma fonction comme ceci: send_command ("A1234", wait = True) ou existe-t-il un moyen de stocker cela dans deque? Self.CommandList.append ([ 'b23456', wait = True]) ne fonctionne pas normalement. ny idées? – Schodemeiss
oui vous pouvez. Vous pouvez décompresser les listes d'arguments comme * arglist et dictionnaires avec des arguments de mot-clé avec ** argdict. Cependant, il n'y a aucun moyen de le stocker en une seule pièce, comme vous l'avez écrit. Il pourrait être plus pratique de stocker des fermetures prêtes à être appelées à la place. – unbeli
voir la mise à jour pour un exemple – unbeli