- 主题:这段代码为啥结果是这样?
1)对于简单变量:
>>> a=7
>>> b=a
>>> b=6
>>> b
6
>>> a
7
简单变量是赋值?即b的改变不影响a,两个变量之间相互独立;而复合变量则是绑定,d的改变影响了c,两者都是指向同一变量,是同一变量的不同名称而已。
【 在 flw 的大作中提到: 】
: Python 没有赋值,都是绑定。理解了这个就好办了。
:
--
FROM 120.242.251.*
我的粗浅理解,函数有复合变量,调用的时候,会记得以前的值,往后添加
【 在 iwannabe 的大作中提到: 】
: #!/usr/bin/env python3
: def foo(x: int, d: dict = {}) -> dict:
: if x == 0:
: ...................
--
FROM 120.242.251.*
既然是绑定,为何修改了b,a却没有被修改?这和c语言的引用不一样啊
【 在 flw 的大作中提到: 】
: 简单变量也是绑定。
: 以前他们都吹这个叫做「一切皆对象」。
: 看这里就看得很清楚了:
: ...................
--
FROM 120.242.251.*
反正我记住了,修改简单的变量无所谓,但是修改复合变量,一连串的都修改了
【 在 flw 的大作中提到: 】
: 因为你修改的是 b 呀。
: 你没修改 b 绑定的那个东西。
:
--
FROM 117.136.116.*