gpt4 book ai didi

python - Python 2.4 的 future 发展

转载 作者:行者123 更新时间:2023-11-28 21:28:37 26 4
gpt4 key购买 nike

我正在开始一个新的 python 项目,主要针对可能在几年内升级到 RHEL6 的 RHEL5 机器。鉴于 python 2.4 是 RHEL5 上的标准,并且系统管理员不会支持他们必须支持的更多内容,因此在我们的本地存储库中获取 python 2.6 需要一些说服力。虽然我似乎可以很好地使用 python 2.4,但我对从头开始创建一个旨在与这样一个旧版本 100% 兼容的项目持怀疑态度。

我应该争取在 2.6 中完成这个项目,还是争取最顺利地符合 RHEL5?如果我坚持使用 2.4,我应该注意哪些陷阱?

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

最佳答案

你最好的选择可能是坚持使用 2.4,并拥有一个 time_machine 模块,其中包含你想要的所有后期 python 所拥有的好东西。例如,当属性首次出现时,您必须执行以下操作:

def _get_prop(self):
return self._prop
def _set_prop(self, value):
self._prop = value
prop = property(_get_prop, _set_prop)

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

@property
def prop(self):
return self._prop
@prop.setter
def prop(self, value):
self._prop = value

这意味着您的类命名空间中的冗余函数更少。

我碰巧很喜欢这个功能,所以我的 time_machine.py 的代码类似于:

# 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 等效项通常用于演示新功能,因此您甚至不必自己编写代码。

关于python - Python 2.4 的 future 发展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7694006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com