如何在python中打开闭包?

Gul*_*zar 6 python closures

我遇到以下面试问题,却不知道如何解决:

def cons(a, b):
    def pair(f):
        return f(a, b)
    return pair
Run Code Online (Sandbox Code Playgroud)

给定一对,比如cons(6,8)我要求归还abseparetely,例如,在这种情况下分别为6,8。

举例来说,

def first(pair):
    pass
    #would return pair's `a` somehow

def second(pair):
    pass
    #would return pair's `b` somehow
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

rus*_*ro1 2

你可以试试:

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
Run Code Online (Sandbox Code Playgroud)