Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8699494
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Python/Ruby

2009-01-17 16:56:17

前两天在写python代码的时候,发现了一个问题。因为要使用email模块,使用
了其中一项导入语句:from email.mime.text import MIMEText,在python2.5下
面运行的很正常,可是到python2.4下面却运行失败,说是导入库失败。最后找
来找去,发现在低版本下面可以用from email.MIMEText import MIMEText进行
代替。而且,这样做的话也是兼容高版本的。看了一下里面的模块,发现在
python2.5下面:
Python 2.5.2 (r252:60911, Jan  8 2009, 12:17:37)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
>>> dir(email)
['Charset', 'Encoders', 'Errors', 'FeedParser', 'Generator', 'Header',
'Iterators', 'LazyImporter', 'MIMEAudio', 'MIMEBase', 'MIMEImage',
'MIMEMessage', 'MIMEMultipart', 'MIMENonMultipart', 'MIMEText',
'Message', 'Parser', 'Utils', '_LOWERNAMES', '_MIMENAMES', '__all__',
'__builtins__', '__doc__', '__file__', '__name__', '__path__',
'__version__', '_name', 'base64MIME', 'email', 'importer',
'message_from_file', 'message_from_string', 'mime', 'quopriMIME',
'sys']
而在python2.4下面:
Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
>>> dir(email)
['__all__', '__builtins__', '__doc__', '__file__', '__name__',
'__path__', '__version__', 'message_from_file', 'message_from_string']
差别还是蛮大的。
最近很让人郁闷的一件事情是,python的上下兼容性做得并不好。许多版本之间
并不相通。python2.4和2.5的小版本之间差别都如此大,更不要说大版本了。前
几天有同事问,现在python3.0为什么不用啊,不是不用,用的话许多东西都要
重新改写,而且许多第三方库现在都是针对python2.4/2.5的,很少有针对3.0的,
第三方库升不上去,别的地方肯定就不好升了。再如django,每一件小版本之间
的升级,也会导致你的代码重写,如0.96到1.0之间,代码不能拿过来就用,还
得改来改去。虽然说现在3.0代码更严谨了,而且不像c和c++那样,背上历史的
包袱,但是,没有向下兼容性,还是容易加大代码维护工作量。哎,说到这里,
真是让人既爱且恨啊。
简谈python的向下兼容性问题
阅读(3869) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

bbskuang2009-01-22 14:46:27

万分同情。python3改的更是面目全非啦