Ответ 1
Ниже (код ниже возвращает 10)
func.__closure__[0].cell_contents
В следующем примере:
def speak(volume):
def whisper(text):
print(text.lower() + ('.' * volume))
def yell(text):
print (text.upper() + ('!' * volume))
if volume > 1:
return yell
elif volume <= 1:
return whisper
func = speak(volume=10)
func('hello')
HELLO!!!!!!!!!! # <== obviously '10' is stored in 'func' somewhere
Учитывая func
, как мне получить "громкость"? Есть ли что-то в пространстве имен func
, которое дает значение 10
? Я думал, что, возможно, это будет в func.__globals__
или func.__dict__
, но ни в одном.
Ниже (код ниже возвращает 10)
func.__closure__[0].cell_contents