Je pensais que cette variable ne peut être accessible qu'après sa déclaration. Mais apparemment, la résolution du nom de Python commence à chercher de l'intérieur vers l'extérieur.Définir une variable après une fonction interne est une mauvaise pratique?
Ma question est que c'est une mauvaise pratique en termes de lisibilité? Je me demandais que cela pourrait être une connaissance commune pour Pythonista afin que je puisse écrire ce genre de code à partir de maintenant.
def outer():
def inner():
print x
x = ‘foo’
inner()
>>> outer()
>>> ‘foo’
Vous avez raison, cette méthode est déclarée avant de définir 'x' mais elle n'est évaluée que si vous appelez réellement la méthode (' inner() ') et à ce stade' x' est défini. –
Merci! Est-ce une mauvaise pratique? – steve
Cela me rappelle un peu les getters et les setters (https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters) Je suppose que cela dépend de la raison pour laquelle vous voulez fais comme ça. Vous ne pouvez pas dire en soi que c'est une mauvaise pratique. –