美文网首页
python 变量和对象

python 变量和对象

作者: swagsmile | 来源:发表于2020-10-20 22:37 被阅读0次

所谓变量,就是可以改变的量,与常量相对。
Python中若要使用变量,Python是弱类型的语言,不像其它强类型的变量——不需要提前声明,也不需要指定类型,只需要在用的时候,给变量赋值即可。

Python中一切都是对象,赋值的作用就是让变量指针指向某个对象,也就是说变量中存放的对象的引用,而对象的引用是指向这个对象。
Python中的变量只是个名字,它本身没有数据类型,它可以被赋值给任何对象。在给变量赋值时,其实是将被赋值的对象地址存放在了变量中。
变量赋值的格式为:变量 = 对象

x = "blue"
y = "green"
z = x
python执行第一句时,在heap中首先创建str对象,其文本内容为blue,同时还创建变量名为x的对象引用,x引用的就是这个str对象;


image.png

可以看出在Python中赋值操作符号“=”的作用是,将对象引用和内存中的某个对象进行绑定。如果对象已经存在,就进行简单的重新绑定,以便引用“=”右边的对象;如果对象引用尚未存在,就首先创建对象,然后将对象引用和对象进行绑定。这很类似与c中的指针的概念。


image.png
image.png
image.png

动态类型机制

Python使用“动态类型”机制,也就是说,在Python程序中,任何时候可以根据需要,某个对象引用都可以重新绑定到另一个不同的对象上(不要求是相同的类型),这和其他强化型语言如(C++,Java)不太一样,只允许重新绑定相同类型的对象上。在Python中,因为有“动态类型”机制,所以一个对象引用可以执行不同类型的对象适用的方法。当一个对象不存在任何对象引用的时候,就进入了垃圾收集的过程。(Python自动回收机制)

id(),==,is差别

1、id():获取对象在内存中的地址
2、is:比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。换句话说,就是比对2个变量的对象引用是否指向同一个对象。
3、==:对比2个变量指向对象的内容是否相同。

相关文章

  • python 深入变量和引用对象

    变量和对象 在《learning python》中的一个观点:变量无类型,对象有类型 在python中,如果要使用...

  • python 变量和对象

    所谓变量,就是可以改变的量,与常量相对。Python中若要使用变量,Python是弱类型的语言,不像其它强类型的变...

  • 测试Python中变量传递的到底是引用还是值?

    先说结论:Python中统一都是引用传递。 理解变量和对象 我们都知道,Python中一切事物皆是对象,变量是对对...

  • day20

      1.python中变量的赋值   python中所有的数据都是对象,所有的变量都是对象的引用  python对...

  • day20-python中的内存管理机制

    1、python中变量的赋值a、python中所有的数据都是对象,所有的变量都是对象的引用。b、python对数字...

  • 2018-09-14 day20-内存管理机制

    python中变量的赋值 python中所有的数据都是对象,所有的变量都是对象的引用 python对数字、字符串(...

  • 2018-09-14内存管理机制(day20)

    1.python中变量的赋值 python中所有的数据都是对象,所有的变量都是对象的引用 python对数字、布尔...

  • Python中的可变对象和不可变对象

    一、python中的变量与对象 首先在理解python的可变对象和不可变对象时,要理解python的赋值操作。在p...

  • 4.引用

    变量:对象的引用 变量存储对象的内存地址 对象:堆内存 变量:栈内存 python不用声明变量类型,但对象有类型,...

  • 2018-02-07

    python pickle模块:python变量及对象的序列化 1、pickle.dump 将python变量...

网友评论

      本文标题:python 变量和对象

      本文链接:https://www.haomeiwen.com/subject/qfbuektx.html