【Python入门与进阶】 对象,对象结构和变量

转发:【Python入门与进阶】 对象,对象结构和变量

0: 导语

》》a:对象不用想得太复杂,就是内存空间
》》b:不管是哪种对象,都有三种数据,意义重要。
》》c: a = 对象 还有 b =a 的本质

小提纲

Python是一门面向对象的语言?
对象实际上就是一个容器,专门用来存储数据
数值、字符串、布尔值、None都是对象


每个对象中都要保存三种数据?
id(标识)
type(类型)
value(值)


使用变量的本质是什么?
如果变量重新被赋值?

1: 对象

因为 Python是一门面向对象的语言,所以一切皆对象!

比如:

像我们之前学习的数值、字符串、布尔值、None都是对象

这个你知道。

问题来了,对象的本质是什么?

定义:对象就是内存中专门用来存储指定数据的一块区域,也叫容器

因为:程序运行当中,所有的数据都是存储到内存当中然后再运行的!

示意图:

file

(你肯定有一个疑问就是:这个图看起来跟变量一样,那是还有细节没画出来)

示意图:更多细节

file

2:每个对象中都要保存三种数据

分别是 id,type,value

id(标识)
> id用来标识对象的唯一性,对象的id就相当于人的身份证号一样,每一个对象都有唯一的id

含义:
》》a:id是由解析器生成的,在CPython中,id就是对象的内存地址
》》b:对象一旦创建,则它的id永远不能再改变
》》c:可以通过id()函数来查看对象的id

type(类型)

   比如:int str float bool 。。。

   这个你肯定知道 

含义:

》》 a:Python是一门强类型的语言,对象一旦创建类型便不能修改
》》 b:类型用来标识当前对象所属的类型
》》c:通过type()函数来查看对象的类型

意义:类型决定了对象有哪些功能

value(值)

含义:

》》a: 值就是对象中存储的具体的数据
》》b: 对象分成两大类,可变对象 不可变对象
》》c: 可变对象的值可以改变, 不可变对象的值不能改变

练习:尝试自己画一下对象的内存结构。

3:变量和对象

前面对象是内存空间,已经了解,而且还有id,type,value属性。
那么以下代码在内存是什么情况?


a = 123

这个你懂的 a变量里面是什么?

file

对。是id 。

变量中存储的不是对象的值,而是对象的id(内存地址)
当我们使用变量时,实际上就是在通过对象id在查找对象

为什么是id呢?

假设如果不是,存的就是对象,如下,那么内存开销成问题。

file

所以,将对象赋值给变量,本质就是将该对象的id赋值过去。

给变量赋值另一个对象只是 将新对象id赋值给变量。

file

再看下面一段代码:


a = 10
b = a

那么b是多少?

运行结果如下。

A变量赋值给另一个变量B,本质是给B赋值A变量里面保存的对象id

file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁老师的教学团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值