|
|
1
5
你可能会喜欢 this module 它实现了您正在寻找的包装器。 |
|
|
2
4
看起来您最希望看到一个具有副作用的表达式。如果Python中允许这样做:
... 那么你就可以清楚地表达你的意图了。但事实并非如此。如果嵌套函数中允许出现副作用,则可以:
现在,这不仅变得难看,而且仍然不是有效的Python代码——嵌套函数“assign_m”不允许修改变量
但那是 清晰地 太过分了。
最后,有一些无副作用的处理方法:
看 就像Python一样,更不用说Python程序员可以理解(这是Lisp吗?)。 我认为这个故事的寓意是Python并没有针对这种习语进行优化。你真的需要有点冗长,在其他条件下有很大的嵌套因素。 |
|
|
3
1
您可以编写一个实用程序类来执行“保存状态并返回结果”操作。我不认为这是那么刻薄。实现起来相当简单:
然后将其用作:
|
|
|
4
1
我意识到,在我努力使其进行自我测试并在2.5、2.6和3.0中工作时,我在某种程度上模糊了真正的解决方案。重要的行在上面标记为#A和#B,在这里您使用相同的对象进行测试(命名它)
|
|
|
5
1
基于对这个问题的完美回答,我提出了以下机制。这似乎是解决Python“条件中无赋值”限制的一般方法。重点是透明度,由沉默的代表团实施:
在一般情况下,这是一个线程安全的解决方案,因为您可以创建自己的
虽然不是线程安全的,但对于许多简单脚本来说,这提供了一个有用的快捷方式。 |
|
|
6
1
Python 3.8现在为我们提供了一个简洁的解决方案:
它将把右边的值赋给左边的变量,然后返回值。 基本上,我们最终可以实现@aaron的愿望,只需写下:
|
|
|
7
0
这样可以避免过度嵌套。 |