●问题:
为什么创建__init__或者别的类函数时需多加一个self变量?
答案见评论区,期待你的不同见解。
一、面向对象vs面向过程
用一个经典的问题“如何把大象装进冰箱”阐述二者的区别
●面向过程思维:把大象装进冰箱需要三步:
【1】打开冰箱
【2】把大象装进去
【3】关闭冰箱
●面向对象思维:“万物皆对象”
【1】你、大象、冰箱看成三个对象
【2】你发送消息给冰箱,传递力的参数给冰箱的门,门打开
【3】你传递消息给大象,大象响应消息,大象进冰箱
【4】你发送消息给冰箱,传递力的参数给冰箱的门,门关上
二、Python面向对象编程的三大特性
●封装
举个栗子,现在的手机厂商把手机电池通过外壳封装在手机内,用户不需要知道电池长什么样,只需要充电即可使用。
Python类中有属性和方法,通过私有属性、私有方法的方式实现封装
●继承
举个栗子,N年后王思聪继承了王健林的万达,小王利用老王的资产重新开发了一个直播软件:熊达。
Python继承,子类直接拥有被继承类的属性而不需要在自己的类体中重新再写一遍,并且还可以重新定义新的属性。
Python支持多重继承,一个子类可以继承多个父类。(注意:学习Java的同学要区分开)
●多态
举个栗子,中国人都会讲中文“干什么”,不同地方说法不一样,但意思一样,有的说“噶哈玩意”?有的说“搞慕斯”?有的说“揍啥捏”?还有的说“干爪子”。
Python多态是指同一个方法调用,由于对象不同可能会产生不同的行为。
注意:
1.多态是方法的多态,属性没有多态
2.多态的存在有两个必要条件:继承、方法重写
三、Python实例讲解
●Python类class语法
●类中有类变量,类方法,类构造函数,静态方法,私有方法
●类的继承
多继承:
●类的多态
四、上一茬
>>>《Python基础找茬系列25--第三方库jieba中文分词的三种模式》