J'ai un code que j'ai besoin d'utiliser dans par exemple: p> J'ai essayé avec (Remarque: Je sais que eval code>. Parfois, j'ai besoin de sortir du code eval, mais mes essais conduisent à des erreurs.
retour code>,
fin code>,
Quitter code>,
casse code>, et je n'ai pas pu réussir.
Quitter Code> Ne soulève pas d'erreur, mais je ne reçois pas le 5. P>
eval code> est diabolique, mais dans Ce cas, j'ai besoin de l'utiliser.) p> p>
5 Réponses :
Vous pouvez simplement utiliser des conditionnels plutôt que des retours anticipés. P>
Le code EVAL'D n'est que d'être exécuté dans cet endroit. Ce n'est pas une fonction ou un bloc. Comment le feriez-vous sans eval? Probablement comme ceci:
Vous ne pouvez pas. Vous pouvez revenir en dehors des méthodes et sortir des blocs ou des boucles, mais pas Eval.
Vous pouvez essayer un bloc de lancer / capture à la place p> ou ceci: < / p> ou juste faire un conditionnel comme le dit MCHL, car vous le souhaitez probablement d'une butée conditionnelle, pas seulement toujours, mais que je te lance la capture vous permettra de sauter d'un bloc, peu importe la façon dont De nombreux niveaux vous sont, ce qui le rend plus robuste, si vous devez sortir d'une boucle imbriquée ou quelque chose comme ça. p> p>
Réponse géniale! De cette façon, je peux mettre attraper: arrêter do ... fin code> autour b>
eval code> et utiliser uniquement le
lancer code> à l'intérieur ! Avant votre réponse, je pensais à utiliser
suite code>, mais
attrape / jette code> est de loin meilleur car il n'implique pas les variables globales CC, seuls les symboles.
Je n'ai pas réalisé que, mais c'est cool, vous pouvez les mettre de côté du bloc d'évaluation. Whoa.
Merci à tous, mais j'ai trouvé une solution qui convient à mon problème: de cette façon, le mot clé intuitif code> peut être utilisé à l'intérieur Je n'ai pas aimé les solutions de type conditionnel dans ce cas parce que cela me forcerait (ou l'utilisateur) d'ajouter une extrémité À propos de eval code> pour en sortir avec succès. P>
/ Code> à la fin. P>
Jeton / Catch CODE> ou
BAASE CODE>, je considère que le mot clé code> est plus intuitif . p> p>
Vous pouvez très heureusement définir une fonction et l'exécuter en fin de compte à la fin du script comme suit: démo p> p>
J'ai découvert quelque chose de bizarre.
Pause Code> Saute à partir d'un (code> Rendement Code> Ed Block. Donc, je peux faire:
def do_yielield; rendement; finir; do_yield {eval "met 1; met 2; pause; met 3"}; met 5 code> et je reçois le résultat attendu. Je ne sais pas pourquoi cela fonctionne!