定义类的关键字是class,一般定义类第一个字母要大写
关键字class
类是封装函数和变量的,类是进一步封装,把变量和函数封装起来
函数-类-模块-包-项目
对象是真实具体存在的
描述一类事物时
python就是面向对象
self是对象本身
对象之间是单独存在的,是独立的,相互之间是没有影响的
每个人的name,age都不一样
如果这样写,创建一个人出来,只要不修改,那每个人的name,age都是一样的了
不能是固定内容,要写在初始化函数里面 双下划线def __init__(第一个参数是self,self就相当于对象本身,他会在实例化对象时,把对象传入进来),把需要改变的变量,写在函数里面
如果属性不固定,那么这些属性就要写在def__init__()初始化函数里面
init方法,在创建实例化对象时就已经调用了,并且会默认把新创建的对象传进来,self保存的是对象
self是固定的必备参数
初始化函数(构造函数):会在自动创建实例对象的时候调用,并且调用的时候会默认把对象本身作为第一个参数传进来
常量,不发生改变的,可以直接定义到类里面
对象之间是单独存在的,是独立的,相互之间是没有影响的
类运行,然后文件也没有关闭是会占内存空间的,除了关闭文件释放内存外,还有一个方法叫析构函数,手动去删除,析构函数在删除是会自动调用。init在创建对象时会自动调用,析构函数在删除对象时会自动调用
删除是del本身内置函数的功能,而不是创建的函数的功能,用到这个关键字时,会自动调用(触发)这个函数
由此可以看出,删除是关键字del的功能,并不是析构函数可以删除,在用del时,会自动调用析构函数(若已经创建析构函数),del才是删除对象,释放内存空间
继承
多个类,有很多重复的功能、内容,就可以提升加入到一个更大的类当中,向上抽取,定义他们的父类
只要继承父类的功能,就代表子类也有这个功能了
多继承
如果两个都有,就用father的,不用monther的
用了super的话,他就会去找有没有那个方法,如果father没有就继续往下找monther的,