【发布时间】:2014-04-11 11:34:06
【问题描述】:
我有这个代码:
from __future__ import print_function
a = lambda i=1: print('Line 1') or i if i else 1
b = lambda j=1: print('Line 2') or j if j else 2
c = lambda k=1: print('Line 3') or k if k else 3
d = lambda l=1: print('Line 4') or l if l else 4
q = a(True)**b(True)**c(True)**d(True)
运算符** 是右结合的。因此,当解析器/解释器遍历q 中给出的字符串时,它应该调用d,然后是c,然后......最后是a。正确的?没有。
它打印: 1号线 2号线 3号线 4号线
这一切的开始是我认为我可以想出一个非常聪明的方法来滥用运算符关联性,以便在将字符串放在同一连续行上的同时向后打印字符串,following the instructions from this closed golf post
【问题讨论】:
-
右联想,即
x**y**z == x**(y**z)。你不知道的是x**y中的左侧总是在右侧之前评估。现在,问题是什么? -
哦!将来,是否有文件显示这些比较?我寻找它,但找不到确切的来源。
标签: python