Reflektieren / Untersuchen Sie geschlossene Variablen in Python

Wenn ich habe:

def f(x):
  def g(y):
    return x + y
  return g

f2 = f(2)

Gibt es eine Möglichkeit, die 'x'-Bindung zu finden, die f2 verwenden wird? Ich habe mir inspect angesehen, konnte aber nicht sagen, ob ein Teil des Rahmens zutreffen würde. Mit anderen Worten, könnte ich unten ein closedVars () definieren:

def closedVars(anF):
    ... return ...

assert closedVars(f2) == {'x': 2}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage