`goto` en Python

Je dois utiliser goto en Python. J'ai trouvé entrians goto mais mon Python de mise en œuvre (Disponible 2.7.1 sur Mac) n'ont pas ce module, de sorte qu'il ne semble pas être portable. Il faut au moins travailler dans toutes les implémentations de Python qui soutiennent Disponible bytecode (esp. Je me soucie de Disponible et PyPy). Puis il y a cette question relative à la, et cdjc est goto. Et ceux donnés par les réponses ci-dessous.

Je pouvais aller et construire le bytecode manuellement (c'est à dire écrire mon propre compilateur Python) parce qu'il y est une telle instruction (JUMP_ABSOLUTE et amis). Mais je me demande si il ya un moyen plus facile. Est-il possible via inspect ou afin d'appeler une seule instruction bytecode? J'ai aussi pensé à la compilation via Python et ensuite automatiquement la correction du générés bytecode Python.


Bien sûr, les gens vont se demander pourquoi et ne me donne aucune réponse utile si je ne l'explique pas pourquoi, j'ai vraiment vraiment besoin de cela. Donc en bref mon cas d'utilisation: je suis en train de traduire un C AST Python AST et de la compilation. Je peux mapper chaque flux logique (toutes les boucles et d'autres trucs) en quelque sorte de l'équivalent du code Python. Tout sauf goto. Projets connexes: PyCParser (voir interpreter.py), PyCPython, PyLua.

  • La traduction de C pour Python? WTF. Juste... pourquoi diable aurait-on besoin de cela et comment cela pourrait-il être pratique? (Cela ressemble à une très amusant défi, certes.) Aussi, êtes-vous conscients du fait que ce module est en avril fools blague et ne fonctionne qu'en inspectant le code source et de faire hackery que je n'aurais jamais penser être la moindre portable?
  • +1 pour le fait d'expliquer pourquoi vous pensez que vous avez besoin goto.
  • Ainsi, le facteur plaisir est en effet l'une des principales raisons. 🙂 Sinon, je pense qu'il pourrait être utile dans certains cas pour avoir quelque chose comme Python ou Lua intégré. Et pour le débogage de code C en général. Via PyPy JIT compiler, il pourrait même ne pas être que lente.
  • Je ne pense pas que ce que vous essayez d'atteindre n'aura pas de pause d'une manière ou d'une autre les objets python' compte de référence.
  • goto décorateur (Python recette)
  • Ow, mon cerveau!
  • Oui, regarde exactement ce que je cherchais (ce que je voulais dire par la correction du bytecode)! Mettez juste répondre à la question. 🙂 Travaille à la fois Disponible et PyPy.
  • Voir aussi: entrian.com/goto/download.html

InformationsquelleAutor Albert | 2011-08-05