「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战」
正式的Python专栏第40篇,同学站住,别错过这个从0开始的文章!
前篇学委展示分享了类的继承和重写,面向对象还有一些概念,继续跟上吧,这次总结一下!
类和对象再次认识回顾
类和对象,类就像是3D建模里面的模型数据,对象跟用这个3D模型使用3D打印出来的具体模型。
类没有生命周期,因为你的代码写好了类,它就存在,并不因为被不被加载而存在!
但是我们没有加载类到PYTHONPATH中,它不被找到!但是不代表它不存在!
对象呢?仅存在于Python程序运行过程中,中间程序关闭了,对象就消失了。
对象有生命周期
对象被创建,被惦记着(使用),被销毁了。(Python有对应的函数)
类和对象之间的数据共享
这就跟一家人住在一个房子里面一样,整个房子的设施是共享的,这样子类比。
先补充一个知识点:@staticmethod
这是python内置的一个函数修饰符,用来装饰函数的,也就是在函数的上方。
比如下面的代码:
1 | python复制代码class LeiXueWeiDemo(): |
看看下面的程序:
1 | python复制代码#!/usr/bin/env python |
下面的运行结果务必看懂理解:
这里学委想表达的是,共享变量/函数,在内存中地址一样。
其他函数和变量,类被加载过之后,函数被加载,函数引用地址跟创建的对象的地址不一样!
同时类的数据属性,没有任何地址引用(因为类是没有数据属性赋值的),仅仅实例化为对象,我们才能通过对象来修改属性,对象是有状态的!
就像下面的图一样,当然内存地址只是虚构,未必连续!
总结
类和对象,一个就像是3D建模里面的模型数据,跟3D打印出来的模型。
但是3D打印没存在共享变量/共享函数,因为模型数据文件,跟打印出来的实物没有任何物质关联!
喜欢Python的朋友,请关注学委的 Python基础专栏 or Python入门到精通大专栏
持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!
本文转载自: 掘金