Après avoir testé un certain temps avec le cadre Cmd.cmd en python, je remarque un problème que je ne sais pas quoi faire. De plus, je crois que cela fonctionne quelques heures avant (ou je suis juste fou), donc c'est encore plus bizarre.la touche de tabulation avec Cmd.cmd Python
J'ai le code exemple suivant, testé sur les systèmes Windows et Linux (il est donc pas un problème Windows), mais la complétion ne fonctionne tout simplement pas.
Si je l'exacte même code en Python 2 ne fonctionne sur le système Linux (pas sur celle de Windows si)
import cmd
class Shell (cmd.Cmd):
def do_test (self, params):
print('test: ' + params)
def do_exit (self, params):
return True
def do_quit (self, params):
return True
if __name__ == '__main__':
x = Shell()
x.cmdloop()
Savez-vous pourquoi cela se produit, ou ce que je peux faire , pour rendre l'achèvement de l'onglet possible?
Avez-vous mis le complete_namehere? –
Les fonctions 'complete_XY' sont pour l'achèvement des arguments (quand je rentre' test f' il pourrait me proposer FooBar test), mais l'achèvement des commandes est généré automatiquement à partir de toutes les fonctions 'do_XY' disponibles. Aussi quand j'appuie sur tabulation, il met simplement un onglet à la ligne de commande, alors que rien ne devrait arriver quand il n'y a pas de complétion compatible (parce que les fonctions renvoient alors une liste vide). – poke