realpython / realpython/python-guide
Tip on the "Late Binding Closures" section
Personne n'a encore pris cette issue.
- Langage dominant
- Batchfile
- Étoiles
- 29.8k
- Forks
- 5.9k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
The two solutions in "What You Should Do Instead" are certainly correct, while there's another solution in that special case, one can simply change
return [lambda x : i * x for i in range(5)]
to
return (lambda x : i * x for i in range(5))
in other words, one can create a generator, rather than a list, to postpone the time when cell contents be evaluated. Actually, a more essential test code could be
for multiplier in create_multipliers():
print multiplier.__closure__[0].cell_contents
FYI.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Lisez la section "Late Binding Closures", en particulier "What You Should Do Instead", et comparez l’exemple de générateur proposé avec les explications existantes. Exécutez la boucle create_multipliers() fournie pour vérifier le comportement de la closure. Le travail est terminé lorsque la documentation présente correctement toute alternative valide et inclut un exemple clair à l’appui.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- documentation
- Type d'issue
- Documentation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100