Python 3.7:如何将复杂函数组合写成一行代码?
一行代码实现该函数组合
当然可以把这段函数组合写成一行代码,核心是简化原函数的嵌套逻辑:
原函数的本质是调用f(x)得到两个参数,将第一个参数直接传入strjoin,第二个参数经过g处理后再传入strjoin,最后返回结果。
可读性优先的写法
def fn(x: int) -> str: a, b = f(x); return strjoin(a, g(b))
贴合原嵌套结构的写法
如果想保留原函数中“先定义inner逻辑再调用”的思路,也可以用匿名函数实现:
def fn(x: int) -> str: return strjoin(*(lambda a, b: (a, g(b)))(*f(x)))
内容的提问来源于stack exchange,提问作者tex
相关产品推荐
相关产品推荐

