def one(): l = [1] print 'one', l def two(l): l[0] += 1 print 'two', l two(l) print 'one+1', l one()
def one(): l = [1] print 'one', l def two(l): l[0] += 1 print 'two', l two(l) print 'one+1', l one()
FishHook
А почему её не должно быть?
kampellaА как должно работать это
Ну а какже границы области видимости и все такое?
def a(): pass def b(): a() b()
ShamanТолько присваивание определяет локальную переменную, так?
>>> def one(): ... l = [1] ... print 'one', l ... def two(l): ... l.append(2) ... print 'two', l ... two([0]) ... print 'one+1', l ... >>> one() one [1] two [0, 2] one+1 [1] >>>
py.user.next
Походу, какая-то проблема с пониманием аргументов функции.
kampellaНу, как спросил. Сам же передаёшь список в функцию, а потом спрашиваешь, почему она его меняет.
Вы не поняли вопроса.
py.user.next
def two(l): l += 1 print ‘two’, l