python - 如何在python中打开一个闭包?
问题描述
我遇到了以下面试问题,不知道如何解决:
def cons(a, b):
def pair(f):
return f(a, b)
return pair
给定一对,例如cons(6,8)
我被要求单独返回a
和返回b
,例如在这种情况下分别为 6、8。
意思是,例如,
def first(pair):
pass
#would return pair's `a` somehow
def second(pair):
pass
#would return pair's `b` somehow
如何才能做到这一点?
解决方案
你可以试试:
pair = cons(6, 8)
def first(pair):
return pair(lambda x, y: x)
def second(pair):
return pair(lambda x, y: y)
print(first(pair))
print(second(pair))
# ouput:
# 6
# 8