封装
- 什么是封装?
类是一种封装,将属性和方法封装。
函数也是一种封装,将具有一定共的逻辑代码封装到一个函数中,使用的时候调用即可
优点:提高代码的扩展性。
私有属性
如果有一个对象,当需要对其进行修改属性时,有2种方法
1,对象名。属性名=数据—->直接修改
2,对象名。方法名()—->间接修改
为了更好的保存属性安全,即不能随意修改,一般的处理方式为
将属性定义为私有属性,添加一个可以调用的方法,供调用
python中没有像C ++中的public和static这些关键字来区别公有属性和私有属性,它是以属性命名方式来区分。
如果在属性名前面加了2个下划线 ‘__’,则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。
1,将属性私有化:“__属性名”间接修改
2,对外提供可访问的方式:获取(get)和设置(set)根据需要提供也可以不提供
私有化也是一种封装,只能在类的内部访问,出了类就不能访问了
继承
- 什么是继承?
将公共的(共性的)属性和方法放在父类中,子类只关注自己特有的属性和方法。
python中所有的内容都是对象,所有的对象都直接或间接继承了对象。
私有的属性,不能通过对象直接访问,但是可以通过方法访问。
私有的方法,不能通过对象直接访问。
私有的属性,方法,不会被子类继承,也不能被子类访问。
* *优点:提高代码的扩展性。
- 多继承
所谓多继承,即子类有多个父类,并且具有它们的特征
print(子类名.__ mro __)
可以查看子类的对象搜索方法时的先后顺序
重写父类方法:所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法
多态
- 什么是多态?
一个对象在不同的情况下,具有不同的形态,用于强类型语言。是使用在继承和接口中实现。
1,父类作为参数,可以传递父类和子类对象
2,接口作为参数,只能传递实现对象
Python中有两种说法:
1,python支持多态
python是一个弱类型,本身一个变量名,可以存储任何类型的值,可以理解为多种形态
2,python不支持多态
多态本身是用于强类型语言的,python是一个弱类型,所以不支持多态