Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
840 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


---------------
http://www.ypikay.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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR