前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
利用(面向)对象(属性与方法)去编程的过程
自定义对象数据类型就是面向对象中的类(class)
想要面向对象需要先创建一个类,通过这个类,才能实例化出一个对象
举个例子:
创建类:假如人类是一个类且有自己的属性(有名字,两条腿,穿衣服)和功能(会唱歌,会弹吉他,会跳舞),当然不是所有人都具备类里的所有功能。
实例化类:每个人就是实例化这个类,比如实例化出一个人叫做小明,小明会唱歌、跳舞。"小明"是这个对象的属性,"唱歌、跳舞"是这个对象的功能。
也可以对实例化的对象赋予单独的属性。比如小明身高178cm。
关键字class来声明类,类的名称首字母大写,多单词情况下每个单词首字母也要大写(驼峰命名)
class Name(object):
attr = something
def func(self):
do
object是python中的一个通用对象,python3.0中建议书写,会带有更多的内置功能,以后会详细介绍。
例子:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHsGByVF-1658912912628)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727151048226.png)]](https://1000bd.com/contentImg/2022/07/31/075554744.png)
类中的函数必须先进行实例化,然后通过实例化对象去调用,否则不能被调用:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BMULaUTr-1658912912630)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727162427365.png)]](https://1000bd.com/contentImg/2022/07/31/075554858.png)
self.name = 'xiaoming'例子:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIb5Xslq-1658912912632)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727160959047.png)]](https://1000bd.com/contentImg/2022/07/31/075554970.png)
如果在类中定义的函数没有添加self参数,那么这个函数将不能被任何实例化的对象调用:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0rinlAOY-1658912912633)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727161918338.png)]](https://1000bd.com/contentImg/2022/07/31/075555070.png)
没有添加self参数,也不能被类内部的函数调用:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zeYbvYpG-1658912912635)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727162617413.png)]](https://1000bd.com/contentImg/2022/07/31/075555226.png)
在类函数内部在写一个参数可以不用添加self参数,但实例化对象调用只支持调用类函数,不能单独调用类函数内部的函数。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDuN53h5-1658912912636)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727162824377.png)]](https://1000bd.com/contentImg/2022/07/31/075555368.png)
类中的一种默认函数,用来将类实例化的同时,将参数传入类中
构造函数一般写在类的最上方
def __init__(self,a,b):
self.a = a
self.b = b
例子:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRSPcatG-1658912912637)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727165002152.png)]](https://1000bd.com/contentImg/2022/07/31/075555471.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXeAT2ky-1658912912638)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727170417959.png)]](https://1000bd.com/contentImg/2022/07/31/075555599.png)
python中的内存管理都是自动执行的,我们不需要实际的去在类中添加和调用del函数。
python中实例化对象的时候会自动生成del函数,不用的时候也会自动调用del函数释放内存空间。