且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

对象的创建流程 | Python从入门到精通:高阶篇之二十一

更新时间:2021-11-16 17:00:49

类的简介 | Python从入门到精通:高阶篇之二十

对象的创建流程

我们上一节对类有一个简单的了解,现在我们再次进行一个简单的说明。
类也是一个对象!
类就是一个用来创建对象的对象!类就类似于一份图纸,我们根据设计图纸去进行对象的创建。而图纸也需要去创建,所以类也需要去创建。
而对象创建就需要有id、type、value。类的value是空值,那么它的id、type是什么呢?

print(id(MyClass) , type(MyClass))

执行结果:

对象的创建流程 | Python从入门到精通:高阶篇之二十一

类是type类型的对象,定义类实际上就是定义了一个type类型的对象。
我们就依照上面的例子通过图来解析一下这个过程(使用类来创建对象流程)。

对象的创建流程 | Python从入门到精通:高阶篇之二十一

class MyClass():
    pass

此时MyClass相当于一个变量,也是类名。类是对象,创建对象开辟内存空间(id、type、value)。

mc = MyClass()

1、创建一个变量mc
2、在内存中创建一个新对象
3、将对象的id赋值给变量
此时在内存中新开辟一个空间,用来存放新对象(id、type、value)。type应该是所创建的类的type,没有指定的value。

现在我们通过MyClass这个类创建的对象都是一个空对象,也就是对象中实际上什么都没有,就相当于是一个空的盒子,可以向对象中添加变量,对象中的变量称为属性。

语法:对象.属性名 = 属性值
mc.name = '孙悟空'

print(mc.name)

执行结果:

对象的创建流程 | Python从入门到精通:高阶篇之二十一

若直接替换代码为:

print(mc_2.name)

则程序会报错。
执行结果:

对象的创建流程 | Python从入门到精通:高阶篇之二十一

因为我们只给变量mc添加的属性,而mc_2中并未有。
我们依然在图中创建对象进行跟之前一样的创建对象的流程。我们给mc_2一个value则需要这样添加代码:

mc_2.name = '猪八戒'

print(mc_2.name)

执行结果:

对象的创建流程 | Python从入门到精通:高阶篇之二十一

同理,mc_3的value也不存在,需要我们去添加。

本节我们需要了解类也是对象,并说明对象的创建流程。所有对象创建流程都是一样的。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站