【问题标题】:Python 2.4 inline if statementsPython 2.4 内联 if 语句
【发布时间】:2010-05-02 13:52:44
【问题描述】:

我正在 Dreamhost Web 服务器上设置一个现有的 django 项目,到目前为止,我已经让一切正常工作。但是我是在 python 2.5 下开发的,而 dreamhost 默认使用 python 2.4。由于 if 关键字,以下行似乎给出了语法错误:

'parent': c.parent.pk if c.parent is not None else None
                       ^

这种形式的if 语句是否是在 Python 2.5 中引入的,如果是的话,是否有一个简单的更改可以使其与 Python 2.4 兼容?

或者,我应该改用 Python 2.5。我已经将 python 2.5 安装到我的主目录下的一个目录中,并且已经成功运行了 2.5 下的 python 解释器。如果我希望一切都使用 Python 2.5,我可以在哪里设置?

【问题讨论】:

标签: python django dreamhost python-2.5 python-2.4


【解决方案1】:

是的,这种内联 if 是 added with 2.5,差不多 4 年前发布。你可以更新你的 Dreamhost 版本like this

【讨论】:

    【解决方案2】:

    http://www.diveintopython.net/power_of_introspection/and_or.html

    (1 and [a] or [b])[0]
    'parent': (c.parent is not None and [c.parent.pk] else [None])[0]
    

    【讨论】:

    • 可以缩写为“c.parent or None”,但是这会稍微改变行为,因为它现在正在进行布尔测试,而不是非无测试
    猜你喜欢
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2022-07-07
    • 2017-08-18
    • 2014-10-08
    相关资源
    最近更新 更多