Python里为啥可以这样赋值

Python里为什么可以这样赋值
初学Python,练习观摩别人的代码,看到网上有人在Python里赋值语句是这么写的
不是很理解,请各位牛人们提点提点

def fab(max): 
    n, a, b = 0, 0, 1 
    while n < max: 
        print b 
        a, b = b, a + b 
        n = n + 1

在代码
a, b = b, a + b

按我的理解,他想表达的含义是把b的值赋给a,把a + b的值赋给b ?
可是这样赋值是不是会让人迷惑啊,难道这是Python标准的赋值形式?
Python赋值

------解决方案--------------------
这是元祖赋值方式,省略圆括号(在其他一些情况也能省略圆括号,例如某些生成器表达式的写法)
(a, b) = (b, a + b)
所以赋值的过程中,a,b的值没有改变,赋值后才改变