现在自己写阶乘是这个样子的
def f(x):
return x * f(x-1) if x >1 else 1
后来无意中看到耗子的一篇<Python程序员的进化>的文章,
感脚这个代码可以改成这个样子
f = lambda x: x*f(x-1) if x > 1 else 1
顿感哇哈哈我绝对写过第一种
看到这段代码,偶有种不懂觉厉的感脚,虽然看起来很难读的样子,仔细看看又试验了一下,不错不错,是很酷的样子,标记一下
def fact(x, acc=1):
if x: return fact(x.__sub__(1), acc.__mul__(x))
return acc
原文是请参见这里 酷壳