Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Import xxx as

+1 vote

Yop, c'est quoi le big avantage d'importer avec as ? (s'il y en a un)

J'ai cherché sur le site de sametmax mais je n'y ai trouvé aucune référence me semble t'il, j'ai aussi navigué sommairement sur stackoverdflow mais je dois bien avoué qu'une petite explication francaise vaut mieux qu'un gros pavé rosbeef.

Des exemples concrets ? Merci !

demandé 21-Avr-2016 par gigistone (120 points)

2 Réponses

+5 votes
 
Meilleure réponse

Voici la réponse officielle à cette question.

En gros, ça sert à contrôler précisément sous quels noms tes modules sont chargés dans ton environnement. Ça peut être pour des raisons pratiques comme raccourcir un nom (je pense à import numpy as np par exemple), ou éviter un conflit entre 2 modules de même nom, ou d'autres raisons qui m'échappent.

répondu 21-Avr-2016 par yoch (2,514 points)
sélectionné 22-Avr-2016 par gigistone

Cela peut également servir à mutualiser/simplifier du code. Par exemple, si tu souhaites laisser le choix d’une librairie à l’utilisateur:

try:
    import ma_lib_lite as ma_lib
except ImportError:
    import ma_lib_complete as ma_lib

ma_lib.ma_methode_commune()

Effectivement, c'est un usage courant de charger des libs alternatives de cette façon. Le premier exemple qui me vient en tête est simplejson comme drop-in replacement pour json.

Ok, c'est utile pour améliorer la lisibilité, pour eviter des collisions entre espaces de noms (globaux) du meme nom ou dans un cas technique précis comme celui énoncé par etno (très interessant d'ailleurs c'est une fonction pratique à laquelle je n'ai pas pensé sur le coup, ca m'apparait très clair maintenant). Un outils non négligeable au final.

Merci à vous sincerement.

Si la réponse te conviens clique sur la coche en dessous le nombre de votes ;)

+1 vote

Non seulement dans le cadre d'un import module (avec les alias courants type import pylab as pl, ce qui permet de gagner un peu de temps), mais aussi lorsque l'on import un objet avec

from foo import bar

et que différents objets peuvent avoir le même nom. Ainsi, le module sympy et numpy ont un grand nombre de fonctions communes, mais qui ne servent pas du tout à même chose (la première permettant de faire du symbolique, la seconde du calcul numérique).

Dans ce cas, il est possible de faire

from sympy import cos as scos
from numpy import cos as ncos

afin d'avoir accès aux deux fonctions sans conflits.

répondu 2-Mai-2016 par Poisson (272 points)
...