Python - importation dans si

J'ai écrit il y a peu de wrapper pour urllib (python3). Est-il bon et sûr pour le module d'importation si?

if self.response_encoding == 'gzip':
    import gzip

Je n'ai pas trouvé PEP à propos de ce code. Cependant, il m'ennuie.

  • juste être sûr de ne pas appeler n'importe quelle fonction à venir à partir de ce logiciel s'il n'est pas importé
  • Oui, il est. Pourquoi ça vous dérange?
  • Je voulais vous demander et être sûr. Je devrais peut-être utiliser "inquiet" mot. L'anglais n'est pas ma langue maternelle.
  • Il dérange les gens, je pense, parce que dans d'autres langues, des constructions similaires à "importer" sont statiques déclarations, alors qu'en python elles sont exécutables. Une astuce: Vous pouvez faire 'a partir de x import *' à l'intérieur d'une fonction. Mais ne le faites pas. Parce que cela signifie que la fonction a maintenant une variable locale ensemble qui ne peut pas être déterminé lorsque la fonction est compilé, la touche func a différents éléments internes qui sont messier et plus lent, et local vars peut être touchée. (même si vous faites un "exec" dans un func sans l'aide de 'in'). Ces usages sont obsolètes.