1.继承 1.1 单继承# ### 继承 """ (1) 单继承 (2) 多继承 至少2个类,子类和父类 一个类继承另外一个类,当前类是子类 (衍生类) 被继承的这个类是父类.(基类,超类) python 所有类的父类都是object """ # 1.子父继承后,子类可以使用父类的公有方法 class Father(): skin = "黑色的" __sex = "男性" def hobby(self):…
目录 1.多态 2.__new__魔术方法 2.1 关于魔术方法__new__ 2.2 基本语法 2.3 __new__ 触发时机快于构造方法 2.4 __new__ 和 __init__ 参数一一对应 2.5 关于__new__的注意点 3.单态模式 4.连贯操作 5.小人射击项目 多态 什么是多态? 不同的子类对象,调用相同的父类方法,产生不同的执行结果 多态的关键字:继承和改写 下面的例子完美展示了python的多态: # 定义Soldier类,让空军陆军海军继承这个类 class Sol…
概要: 组合 封装 property装饰器 多态 Python推崇鸭子类型:解耦合,统一标准(不用继承) 1. 组合 继承:会传递给子类强制属性 组合:解耦合,减少占用内存.如:正常继承,如果一个班级有100个学生,那么这个学生的重复的课程信息会存一百遍,浪费内存 一个对象有一个属性,该属性的值是来自于另外一个类的对象 2. 封装 装指的是将属性装进一个容器 封指的是将容器内的属性隐藏起来 如何做到"封":在属性名前加上__开头,特点如下: 1. __开头的属性会在检测语法时发生变形,…
(继承补充)组合 obj=fun()#对象 obj.attr=foo()#对象的属性等于另一个对象 什么是组合:     A类的对象具备某一个属性,该属性的值是B类的对象   基于这种方式就把A类与B类组合到一起   对象既能使用A类中的数据与功能,也能使用B类中的数据与功能 为什么要用组合:   组合与继承的作用一样,都是用来减少类与类之间的重复代码 #组合不属于继承 #类使用将变量及处理其的函数捆绑起来 #继承是强耦合,组合是解耦合 如何用组合:  class People:    def…
练习CBV用法 截图中的action="/cbv/",应该是这样 上边红图,说明mysql有问题,需要重启一下 返回,输入的内容 @wrapper==>cbv=wrapper(cbv) 运行重启: 提交数据123,之后,返回123 服务端得到结果: 上边是FBV装饰器的使用 下边是CBV装饰器的使用: 下面我们进行,加装饰器 ,先演示dispatch 注意,上边的dispatch里边的,第一个框,没有self 这时候,我们再重启看效果. 现在开始写装饰器, 开始,加入方法装饰器,…
1. 单继承 / 多继承 / 菱形继承 # ### 继承 : 一个类除了自身所拥有的属性方法之外,还获取了另外一个类的成员属性和方法 """ 一个类可以继承另外一个类,那么当前类是子类(衍生类),被继承的类是父类(基类,超类) python中继承的种类: (1) 单继承 (2) 多继承 object 是所有类的父类 """ # (1) 基本语法 class Human(): hair = "黑色" __age = 18 def…
1.单继承 1.1 关于继承的一些基本概念 1.2 子类可以调用父类的公有成员 1.3 子类无法调用父类的私有成员 1.4 子类可以改写父类的方法 2.多继承 2.1 多继承的基本语法 2.2 super用法 2.3 self和super的区别 3.菱形继承(钻石继承) 3.1 super:用来解决复杂的多继承调用顺序 3.2 mro列表:返回调用顺序列表 3.3 issubclass和isinstance 单继承 关于继承的一些基本概念 1.什么是子类?什么是父类?如果一个类继承另外一个类,该…
类的继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 为什么用继承 使用继承可以减少代码的冗余 对象的继承 python中支持一个类同时继承多个父类 class Parent1: pass class Parent2: pass class Sub1(Parent1,Parent2) pass 查找顺序:先自己-->类-->父类-->父类的父类 缺点:当继承多个的时候,功能与功能之间会混乱,顶多继承一个 属性查…
PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中的属性个数  /  计算数组的长度 1.in_array(元素a,$attr)   判断元素a是否在数组$attr里面存在,存在返回一个true,反之false 2.array_reverse($attr)  将数组中的元素顺序翻转,创建新的数组并返回 3.array_unique($attr)   删除数组…
上节课复习:1.编程思想    面向过程        核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么后干什么        基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式        优点:复杂的问题流程化,进而简单化        缺点:可扩展性差 面向对象        核心是对象二字,对象是特征(变量)与技能(函数)的结合体        基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成的,在上帝眼里所有存在的事物都是对象,任何不存在的事物…