Python中的变量的指向和引用

版权声明:文章版权归本博客所以未经许可不能转载 https://blog.csdn.net/u011738045/article/details/82461372
a = 100  # 指在内存开了一个空间这个空间存了100,然后找了一个变量名a    》》》》这个a只是指向100的地址而已
b = a  # 指的是b也指向了100那个地址



可以用函数id() 来验证他们地址是否相同

a = 100  # 指在内存开了一个空间这个空间存了100,然后找了一个变量名a    》》》》这个只是存着100的地址而已
b = a  # 指的是b也指向了100那个地址

print(id(a))  # id >>>4506684544

print(id(b))  # id  >>>4506684544

# 这个id也就是100的内存地址 他们引用的是同一份,这个就是引用

也就是在Python中a等于多少,b等于多少,c等于多少,就是变量名指向了那个引用的数据地址而已

a=b也就是把b的引用也指向了b而已,而不是a也赋值为了b

举例

A = [1, 2, 3, 4]
B = A

A.append(5)

print(B)  # 此时b也会跟改变    
# a = 1000
a = [1]


def c(a):
    a += a;  # 当a是数字,是不可变类型,当你强行修改的时候他自己就会新建一个局部变量来赋值
    print(a);  # 当a是列表的时候此时是可变类型,他就会直接引用全局变量所以就修改了


c(a)
print(a)  # 所以打印的a和,函数打印的a区别和修改取绝于a的是可变类型,还是不可变类型

# 列子交换两个变量的值
w = 1
z = 2
# 方式一
c = 0
c = w
w = z
z = c

# 交换方式二
w = w + z
z = w - z
w = w - z

# 方式三
w, z = z, w

python中

a+=a  和 a=a+a 不是等价的,其他语言是等价的

a+=a 可以直接修改引用的值

猜你喜欢

转载自blog.csdn.net/u011738045/article/details/82461372