我正在阅读有关 lambdas(潜入 python)的内容,并且我执行了一个示例代码,得到的结果与文本状态不同。它是example 4.21
:
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
这是我的 py 2.7 控制台输出:
>>> collapse = True
>>> processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
>>> processFunc("this is\na\ttest")
'this is a test'
>>> collapse = False
>>> processFunc("this is\na\ttest")
'this is a test'
如我所见,无论collapse
值是多少,都会返回第一个 lambda 表达式。是我的想法有问题还是 python 版本改变了,或者为什么我得到的结果与这本传说中的书不同?