首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2.4的未来发展

Python 2.4的未来发展
EN

Stack Overflow用户
提问于 2011-10-08 08:30:12
回答 5查看 177关注 0票数 2

我正在启动一个新的python项目,主要针对可能在几年内升级到RHEL6的RHEL5机器。鉴于Python2.4是RHEL5上的标准,系统管理员不会支持超过他们必须支持的内容,在我们的本地代码库中获取Python2.6将需要一些说服力。虽然看起来我可以很好地使用python2.4,但我对从头开始创建一个旨在100%兼容这样一个旧版本的项目持怀疑态度。

我应该争取在2.6版本中完成这个项目,还是应该以最顺畅地遵循RHEL5为目标?如果我坚持使用2.4,我应该意识到哪些陷阱?

仅供参考:我肯定会使用sqlite和pygtk。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-08 15:05:51

你最好的选择可能是坚持使用2.4,并拥有一个time_machine模块,它包含了后来的蟒蛇所拥有的所有你想要的东西。例如,当属性第一次出现时,你必须这样做:

代码语言:javascript
复制
def _get_prop(self):
    return self._prop
def _set_prop(self, value):
    self._prop = value
prop = property(_get_prop, _set_prop)

但在2.6中,它们增强了属性,使其本身也是装饰器,因此您可以这样写:

代码语言:javascript
复制
@property
def prop(self):
    return self._prop
@prop.setter
def prop(self, value):
    self._prop = value

这意味着在您的类的名称空间中挂起的冗余函数更少。

我碰巧非常喜欢这个特性,所以我的time_machine.py的代码类似于:

代码语言:javascript
复制
# 2.6+ property for 2.5-
if sys.version_info[:2] < (2, 6):
    # define our own property type
    class property():
        "2.6 properties for 2.5-"
        def __init__(self, fget=None, fset=None, fdel=None, doc=None):  ...
        def __call__(self, func):  ...
        def __get__(self, obj, objtype=None):  ...
        def __set__(self, obj, value):  ...
        def __delete__(self, obj):  ...
        def setter(self, func):  ...
        def deleter(self, func):  ...

这样做的真正好处是,python的等价物通常用于演示新功能,因此您甚至不必自己编写代码。

票数 2
EN

Stack Overflow用户

发布于 2011-10-08 08:37:28

What's in Which Python?

票数 2
EN

Stack Overflow用户

发布于 2011-10-08 08:36:16

2.52.62.7的新特性。此外,添加某些功能时的标准库文档。例如,string formatting was added in 2.6。不过,第三方库的支持可能不太可靠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7694006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档