Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2389 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Import module ou module.truc ou import*

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Import module ou module.truc ou import*

n°2283792
erwan83
Du Shift DEL tu te méfieras !
Posté le 17-06-2016 à 09:06:47  profilanswer
 

Bonjour.
Ma question se pose sur les imports en haut de python.
Comment optimiser ?

Code :
  1. import urllib2
  2. from urllib2 import URLError

voilà l'exemple typique.
si je continue dans mon code j'utilise  
urllib2.Request
urllib2.urlopen
Or il m'a fallu ajouter en haut  

Code :
  1. from urllib2 import URLError

car ce n'était pas géré par  

Code :
  1. import urllib2

Je pensais que le fait d'écrire  

Code :
  1. import urllib2

engloberait tout le package urllib2
 
Alors quelle solution ?

Code :
  1. from urllib2 import A
  2. from urllib2 import B
  3. from urllib2 import C
Code :
  1. from urllib2 import *


 
???
PS. Ça s'applique aussi pour d'autres modules évidemment
Merci


---------------
https://www.oise-net-multiservices.com
mood
Publicité
Posté le 17-06-2016 à 09:06:47  profilanswer
 

n°2283822
bistouille
Posté le 18-06-2016 à 08:50:58  profilanswer
 

J'ai pas compris où se situait le problème.
 

Code :
  1. >>> import urllib2
  2. >>> dir(urllib2)
  3. ['AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'AbstractHTTPHandler', 'BaseHandler', 'CacheFTPHandler', 'FTPHandler', 'FileHandler', 'HTTPBasicAuthHandler', 'HTTPCookieProcessor', 'HTTPDefaultErrorHandler', 'HTTPDigestAuthHandler', 'HTTPError', 'HTTPErrorProcessor', 'HTTPHandler', 'HTTPPasswordMgr', 'HTTPPasswordMgrWithDefaultRealm', 'HTTPRedirectHandler', 'HTTPSHandler', 'OpenerDirector', 'ProxyBasicAuthHandler', 'ProxyDigestAuthHandler', 'ProxyHandler', 'Request', 'StringIO', 'URLError', 'UnknownHandler', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__version__', '_cut_port_re', '_have_ssl', '_opener', '_parse_proxy', '_safe_gethostbyname', 'addinfourl', 'base64', 'bisect', 'build_opener', 'ftpwrapper', 'getproxies', 'hashlib', 'httplib', 'install_opener', 'localhost', 'mimetools', 'os', 'parse_http_list', 'parse_keqv_list', 'posixpath', 'proxy_bypass', 'quote', 'random', 'randombytes', 're', 'request_host', 'socket', 'splitattr', 'splithost', 'splitpasswd', 'splitport', 'splittag', 'splittype', 'splituser', 'splitvalue', 'ssl', 'sys', 'time', 'toBytes', 'unquote', 'unwrap', 'url2pathname', 'urlopen', 'urlparse', 'warnings']
  4. >>> urllib2.URLError
  5. <class 'urllib2.URLError'>


 
Et en ce qui concerne les différences dans les modes d'importations des modules, y'a plein de sites qui en parlent.
 
Entre beaucoup d'autres :
http://effbot.org/zone/import-confusion.htm
http://chimera.labs.oreilly.com/bo [...] /ch10.html
http://stackoverflow.com/questions [...] import-bad
 
Sinon, une question pourquoi utiliser python2 plutôt que 3 ?


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2283846
masklinn
í dag viðrar vel til loftárása
Posté le 19-06-2016 à 17:31:35  profilanswer
 

erwan83 a écrit :

Bonjour.
Ma question se pose sur les imports en haut de python.
Comment optimiser ?

Code :
  1. import urllib2
  2. from urllib2 import URLError

voilà l'exemple typique.
si je continue dans mon code j'utilise  
urllib2.Request
urllib2.urlopen
Or il m'a fallu ajouter en haut  

Code :
  1. from urllib2 import URLError

car ce n'était pas géré par  

Code :
  1. import urllib2

Je pensais que le fait d'écrire  

Code :
  1. import urllib2

engloberait tout le package urllib2


wut? `import urllib2` ça te donne un objet (module) `urllib2` dans le namespace local via lequel tu peux accéder au contenu du module:

Code :
  1. >>> import urllib2
  2. >>> urllib2.Request
  3. <class urllib2.Request at 0x10f78be20>
  4. >>> urllib2.urlopen
  5. <function urlopen at 0x10f52bc08>
  6. >>> urllib2.URLError
  7. <class 'urllib2.URLError'>


[:spamafote]

erwan83 a écrit :

Alors quelle solution ?

Code :
  1. from urllib2 import A
  2. from urllib2 import B
  3. from urllib2 import C
Code :
  1. from urllib2 import *


 
???


bah `import urllib2` [:petrus75]


Message édité par masklinn le 19-06-2016 à 17:32:36

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Import module ou module.truc ou import*

 

Sujets relatifs
[MYSQL] Import fichier csv : empecher l'update de certaines colonnesGrunt-Sass Libsass import sprites
[VHDL] Test moduleimport fichier csvavec ubuntu ??? operation non permise
[VBA] Import imageun truc de fou
Comment on enlève ce truc sur Symfony ?[POWER SHELL] Problème d'import de module Active Directory
[RESOLU] Postgresql pb d'import fichier CSV avec la commande COPY 
Plus de sujets relatifs à : Import module ou module.truc ou import*


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)