python进阶的第二天
注意:python3的继承机制
Python3的继承不同于pyhton2,其核心是下面两条
1.子类在调用某个方法或变量的时候,首先在自己的方法内部查找,如果没有找到,就开始根据继承机制在父类里面查找
2.根据父类的定义中的顺序,以深度优先的方式逐一查找父类1
提醒:子类继承父类是继承父类的所有属性和方法,但是子类是做了继承的但是子类不可以直接调用
继上文python的封装
继承之多继承:
一个子类可以拥有多个父类的:子类可以有多个父类的方法及属性(公有的方法属性)
多继承的优点就是子类可以拥有多个父类的方法和属性
新式类,旧式类
新式类是以object为基类
旧式类不以object为基类
python3如果没有指定父类解释器就会默认指定类的父类为object
python2不会指定默认的父类
NO.2 封装
封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。类通过将函数和变量封装在内部,实现了比函数更高一级的封装。
NO.3多态(对象的多中形态)
不通的子类对象调用相同的父类方法产生不同的效果
实现多态的前提就是先有继承关系
静态方法
@staticmethod
静态方法,通过类直接调用,不需要创建对象,不会隐式传递self
类方法
@classmethod
类方法,方法中的self是类本身,调用方法时传的值也必须是类的公有属性,
就是说类方法只能操作类本身的公有字段
设计模式
python的单例模式
基础:*args表示多值的元祖参数,**kwargs表示多值的字典参数
Python的__new__方法为对象分配空间,把分配空间的内存地址返回给pyhton解释器
python的异常机制
简单的阐述下就是不知道代码执行时出现什么问题的情况时可以用 try: except: raise e
可以来捕获下异常
Winner.W