127 votes

Le bloc de portée en Python

Lorsque vous code dans d'autres langues, vous aurez parfois à créer un bloc de portée:

statement
...
statement
{
    statement
    ...
    statement
}
statement
...
statement

Un but (de nombreux) est d'améliorer la lisibilité du code: pour montrer que certaines des déclarations forme une unité logique ou que certaines des variables locales sont utilisées seulement dans ce bloc.

Est-il un idiomatiques façon de faire la même chose en Python?

115voto

ThomasH Points 6597

Non, il n'y a pas de support de la langue pour créer le bloc de portée. Le seul moyen de créer de la portée des fonctions, des classes ou modules.

42voto

Sven Marnach Points 133943

Le idiomatiques façon Python est de garder vos fonctions court. Si vous pensez que vous avez besoin de ce, de refactoriser votre code! :)

Python crée un nouveau champ d'application pour chaque module, la classe, la fonction ou le générateur d'expression (en Python 3.x aussi pour les interprétations de la liste). En dehors de cela, il n'y a pas imbriquée étendues à l'intérieur des fonctions.

-1voto

jichi Points 561

Je suis un débutant en python. Je pense que nous avons besoin de qqch en python qui a un anonyme portée. Mais je ne sais pas si il y a d'autres choses que des fonctions nommées qui ont des étendues.

statement
...
statement

def _anonymous():
    statement
    ...
    statement
_anonymous()

statement
...
statement

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X