python2 与 python3的区别 (2)

python3中几个相关的http模块被组合成一个单独的包,即http

python2 python3 备注
import httplib   import http.client   http.client模块实现一个底层的库,可以用来请求和解析http  
import cookie   import http.cookies   http.cookie提供一个pythonic接口进行cookies操作  
import cookielib   import http.cookiejar   http.cookiejar可以操作cookies文件  
import BaseHTTPServer import SimpleHTTPServer import CGIHttpServer   import http.server   http.server实现了一个基本的http服务器  

URLLIB

python2中用来分析、编码和获取URL的模块,但是比较混乱,python3中,这些模块被重构,组合成为一个单独的包,即urllib

| python2 | python3 | 备注 | import urllib | import urllib.request, import urllb.parse, import urllib.error | | import urllib2 | import urllib.request, urllib.error | | import urlparse | import urllib.parse | | import robotparser | import urllib.robotparser | | from urllib import FancyURLopener | from urllib.rquest import FancyURLopener from urllib.parse | |from urllib2 import Request from urllib2 import HTTPError | from urllib.request import Request from urllib.error import HTTPError |

DBM

所有的DBM现在都在一个单独的包里,即dbm。如果需要其中某个特定的变体,比如GNU DBM,可以导入dbm包中合适的模块。

python2 python3 备注
import dbm   import dbm.ndbm      
import gdbm   import dbm.gnu      
import dbhash   import dbm.bad      
import dumbdbm   import dbm.dumb      
import anydbm import whichdb   import dbm      

XMLRPC

XML-RPC是一个通过HTTP协议执行远程RPC调用的轻重级方法。一些XML_RPC客户端和XML_RPC服务端的实现库组合成独立的包,xmlrpc.

python2 python3 备注
import xmlrpclib   import xmlrpc.client      
import DocXMLRPCServer import SimpleXMLRPCServer   import xmlrpc.server      

其他模块

Python2 python3 备注
try: import cStringIO as StringIO except ImportError: import STringIO   import io      
try: import cPickle as pickle except ImportError: import pickle   import pickle      
import builtin   import builtins      
import copy_reg   import copyreg      
import Queue   import queue      
import SocketServer   import socketserver      
import ConfigParser   import configparser      
import repr   import reprlib      
import commands   import subprocess      

包内的相对导入

包是由一组相关联的模块共同组成的单个实体。在python2的时候,为了实现同一个包内模块的相互引用,你会使用import foo或者from foo import Bar。Python2解释器会先在当前目录里搜索foo.py,然后再去python搜索路径(sys.path)搜索。在python3里这个过程有一点不同。Python3不会首先在当前路径搜索,它会直接在Python的搜索路径里寻找。如果想要包里的一个模块导入包的另一个模块,需要显式的提供两个模块的相对路径。

迭代器方法NEXT()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzxwf.html