Python: Comment faire la boucle for pour continuer à partir d'une fonction?

Parfois j'ai besoin de suivre le modèle suivant dans un for boucle. Parfois plus d'une fois dans la même boucle:

    try:
        var = 'attempt to do something that may fail on a number of levels'
    except Exception, e:
        log(e)
        continue

Maintenant, je ne vois pas une belle façon de terminer dans une fonction qu'il ne peut pas return continue:

def attempt(this):
    try:
        return this
    except Exception, e:
        log(e)
        # 1. continue # <-- syntax error: continue not properly in loop or
        # 2. return continue # <-- invalid syntax
        # 3.
        return False # <-- this sort of works, but makes me feel powerless

Si je return False que je le pouvais:

    var = attempt('to do something that may fail on a number of levels')
    if not var:
        continue

Mais je ne pense pas que le fait de la justice. Je veux dire pour la boucle de continue (ou faux) de l'intérieur attempt fonction.

Pourquoi l'envie d'envelopper les quatre simples lignes de code [try-except-journal-continuer] dans quelque chose de moins transparent?
Quel est le problème avec le déclenchement d'une exception à l'intérieur de la fonction, puis l'attraper à l'intérieur de votre boucle?
Vous êtes en train de faire à tort et à travers. Si vous utilisez une boucle for comme un modèle commun, wrap que à l'intérieur d'une fonction, pas la boucle d'éléments.
En regardant ce, quelques années plus tard, "sauf Exception” ou “sauf Exception, comme le e:” est le plus diabolique Python antipattern realpython.com/blog/python/...

OriginalL'auteur F. Malina | 2011-05-20