I'estou me perguntando se existe's alguma diferença entre o fragmento de código
from urllib import request
e o fragmento
import urllib.request
ou se forem permutáveis. Se são intercambiáveis, qual é o "standard"/"preferido" sintaxe (se houver uma)?
Obrigado!
Depende de como você quer acessar a importação quando você se refere a ela.
from urllib import request
# access request directly.
mine = request()
import urllib.request
# used as urllib.request
mine = urllib.request()
Você também pode fazer o mesmo quando importa por simplicidade ou para evitar mascarar o ins construído:
from os import open as open_
# lets you use os.open without destroying the
# built in open() which returns file handles.
Você está usando Python3 foram urllib no pacote. Ambos os formulários são aceitáveis e nenhuma forma de importação é preferida em relação à outra. Algumas vezes quando existem múltiplos diretórios de pacotes envolvidos você pode utilizar os antigos `from x.y.z.a import s'.
Neste caso particular com o pacote urllib, a segunda forma de importar urllib.request
e utilização do urllib.request
é como a biblioteca padrão a utiliza uniformemente.
Em python 2.x pelo menos você não pode fazer importar urllib2.urlopen
.
Você tem que fazer "de urllib2 importar urlopen".
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2.urlopen
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named urlopen
>>> import urllib.request
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named request
>>>