0

why "a+=b" and "a = a+b" has different output in below codes?

def test1(a,b): #a = a + b a += b A = [11,22] B = [33] test1(A,B) print(A) It will be [11,22,33] with a +=b But will be [11,22] with a = a+b

7th Jan 2019, 10:56 AM
sky
sky - avatar
1 Answer
+ 3
Because when you use a = a + b The compiler creates a new variable to store the value of a + b And because test1 is not returned, the variable a in the global scope is not affected But when you run a += b the value of a + b is stored in the same variable a, because the argument has been modified, the variable in global scope of a is affected. You can use id() to check if they are the same variable, like in this demo: https://code.sololearn.com/c8uqMqsiZxv9/?ref=app
7th Jan 2019, 11:04 AM
Gordon
Gordon - avatar