py.user.next
var = 'data' def foo(x): var = 'new data' x += var return r >>foo('abc\s') abc new data >>print var data
AlenА что толку от **kwargs, мне 10 раз функцию вызывать и каждый раз надо передавать все аргументы почти все одни и теже.
kampella
А что толку от **kwargs, мне 10 раз функцию вызывать и каждый раз надо передавать все аргументы почти все одни и теже.
kampella
Если же мы обычную переменную, видимую из функции, попробуем изменить
>>> var = [1] >>> >>> def f(): ... print(var) ... var.append(2) ... >>> f() [1] >>> var [1, 2] >>>
>>> x = 10 >>> def foo(): ... x += 1 ... print x ... >>> foo() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in foo UnboundLocalError: local variable 'x' referenced before assignment
def foo(): foo.x = 5 #foo.__dict__['x'] = 5 foo() print(foo.x)