python函数是对象传递,返回值也是对象。但是对象分可变对象和不可变对象。并且,函数return语句返回的对象地址经函数体运行之后已经固定,对其赋值就会改变函数return回的地址造成逻辑混乱。
def func():
m = [5]
return m
# 可以引用func()的返回值,但是不能对func()赋值
a = func() # a的值是[5]
func() = 6 # Error ,函数返回对象固定,这样赋值会改变函数返回对象的地址,造成混乱
func().append(5) # 可以,a的值为[5,5] ,因为list是可变对象,append不会修改函数返回对象的地址