本文共 642 字,大约阅读时间需要 2 分钟。
在学习python的身份运算符is,is not 时,发现这个运算符跟效果*id()==id()*是一样的。那么,就运行一下代码
a = 12b = 12if a is b: print("a,b具有相同标识符")else: print("a,b没有相同标识符")if id(a) == id(b): print("a,b具有相同标识符")else: print("a,b没有相同标识符")
运行结果
这个时候学C++/C出身的筒子们就疑惑了,明明是两个变量,咋就id都一样了呢?是不是python为了提高内存利用效率重用了对象内存呢?
回顾一下python教程中关于变量的解释
不需要预先声明变量的类型,变量的类型和值在赋值的那一刻被初始化(声明和定义的过程一起完成) 在python中, 每一个变量在内存中创建,我们可以通过变量来查看内存中的值
这里是不是很熟悉,跟c中的指针一样啊(访问内存中的值)
a = 12b = 13print(id(a))print(id(b))b = 12print(id(a))print(id(b))
运行结果