Я не знаю, чи є атрибут функції, який видає __dict__зовнішній простір функції, коли цей космічний простір не є глобальним простором == модулем, що є випадком, коли функція є вкладеною функцією, в Python 3.
Але в Python 2, наскільки я знаю, немає такого атрибута.
Тож єдині можливості робити те, що ви хочете, це:
1) використання об'єкта, що змінюється, як говорять інші
2)
def A() :
b = 1
print 'b before B() ==', b
def B() :
b = 10
print 'b ==', b
return b
b = B()
print 'b after B() ==', b
A()
результат
b before B() == 1
b == 10
b after B() == 10
.
Нота
У рішення Седріка Жульєна є недолік:
def A() :
global b # N1
b = 1
print ' b in function B before executing C() :', b
def B() :
global b # N2
print ' b in function B before assigning b = 2 :', b
b = 2
print ' b in function B after assigning b = 2 :', b
B()
print ' b in function A , after execution of B()', b
b = 450
print 'global b , before execution of A() :', b
A()
print 'global b , after execution of A() :', b
результат
global b , before execution of A() : 450
b in function B before executing B() : 1
b in function B before assigning b = 2 : 1
b in function B after assigning b = 2 : 2
b in function A , after execution of B() 2
global b , after execution of A() : 2
Глобальний b після виконання A()був модифікований, і його можна не бажати
Це справа лише в тому випадку, якщо в глобальному просторі імен є об'єкт з ідентифікатором b