python语法学习笔记8(与C++的一些不同)
面向对象的三大特征:
封装
私有属性与私有方法
继承
与c++相同,有父类或者子类(派生类)
一个子类可以继承多个父类
class 子类类名(父类1[, 父类2,。。。]:
类体
继承的类也无法直接调用父类私有属性,需要特殊调用:
类成员的重写:子类方法对父类方法的覆盖
查看类的继承层次结构mro()
重写str方法
多重继承
不推荐使用
若父类中有相同名字的方法,在子类没有指定父类名字时,解释器将按照从左到右(继承参数表)按顺序搜索。
super()获得父类的定义
super()相当于父类类名
例:
多态
同一个方法调用由于对象不同可能会产生不同的行为。
1.多态是方法的多态,属性没有多态
2.多态的存在有2个必要条件:继承、方法重写。
特殊方法和运算符重载
与c++重载不同,由于python中所有都是对象,因此重载运算符相当于重写对象,这个过程是通过重写各运算符对应的函数来完成的。
例:
特殊属性
对象的浅拷贝与深拷贝
浅拷贝会引用同一个子对象
组合
pytorch中常用
m.cpu.calculate()
m.screen.show()
设计模式
工厂模式:
单例模式