类的方法
1.对象方法
定义:直接定义在类里面的函数
特点:自带self参数,传参的时候不用给self传参,系统会自动将当前对象传给self
调用:对象.方法名()
什么时候用:当实现函数功能需要对象属性的时候
2.类方法
定义:类里面定义在@classmethod装饰器后面的函数
特点:自带cls参数,传参时不用给cls传参,系统会自带将当前类传给cls,类能做的,cls都能做
调用:类名.方法名()
什么时候用:当实现函数功能需要类属性的时候
3.静态方法
定义:类里面定义在@staticmethod装饰器后面的函数
特点:没有默认参数,相当于定义在类里面的普通函数
调用:类名.方法名()
什么时候用:实现函数功能不需要对象属性和类属性的时候
继承
定义:继承就是子类拥有父类的属性和功能
语法:class 子类(父类列表):
类的内容
说明:父类列表—父类1,父类2,。。。 一般情况父类列表只有一个父类。
注意:如果定义类的时候没有写继承关系,默认继承 object 类,object是所有类父类
子类使用父类的类属性和方法—直接调用。
子类使用父类的对象属性—若子类定义了init方法,就需要用super().__ init __()将父类的对象属性调入自身的init中才可使用 (super().方法名()–也能调用别的函数)
子类调用父类类的属性和类的方法的流程:先看自身有没有,没有就向父类拿,父类没有就向父类的父类拿,。。。直到向object都拿不到才放弃(报错)父类不能调用子类的属性和方法
重写
1.在子类里面重新定义父类里面的方法,重写后的方法和父类的原方法不冲突,调用时子类调用自己重写的方法
2.保留父类方法的功能,在此基础上添加其他功能(用super().父类方法名())
运算符重载
python中每个运算符都有对应的魔法功能,使用运算符实质上就是使用运算符对应的魔法功能
指定类型的数据是否支持相应的运算,就看其类里面有没有定义对应的魔法功能。
应用:想让指定的对象实现某个运算,在对应的类里面添加对应的魔法功能即可
对象属性的增删改查
增:对象.属性名=值 --属性名存在,此操作为修改。属性名不存在,此操作为增加
setattr(对象,属性名,值)–同上
删:del 对象.属性名–属性名不存在,报错
delattr(对象,属性名)—同上
获取: 对象.属性名—属性名不存在,报错
getattr(对象,属性名)–同上
getattr(对象,属性名,默认值)–属性名不存在,返回默认值