2016-01-13 3 views

ответ

2

Think переменной в качестве меток к значениям, n является маркировка 2, если вы хотите п маркировать значение функции f просто пометить его снова:

n=2 
def f(x): 
    x+=2 
    return x 
n = f(n) 
print n 
0
def f(x): 
    return x + 2 

n = 2 
n = f(n) 
print(n) 

Это как функции должны использоваться. Они получают значения в качестве аргументов и возвращают новые значения. Когда/where/как назначается переменной, это проблема вызывающего абонента, так как переменная находится в области вызова.

Если вы хотите «самомодификации», класс, вероятно, лучший вариант:

class Foo: 
    def __init__(self, n): 
     self.n = n 

    def inc(self): 
     self.n += 2 


f = Foo(2) 
f.inc() 
print(f.n) 
Смежные вопросы