0%

第十节:多继承与魔法方法

自动摘要: title:’第十节:多继承与魔法方法’ tags: 课后解答 url:233.html id:233 categories: 学习 教学 date:2018 ……..

title: ‘第十节:多继承与魔法方法’
tags:
- 课后解答
url: 233.html
id: 233
categories:
- 学习
- 教学
date: 2018-05-18 19:19:38

一:多继承:

class A(): def __init__(self): print(“A”) class B(A): def __init__(self): super().__init__() print(“B”) class C(A): def __init__(self): super().__init__() print(“C”) class D(B, C): def __init__(self): super().__init__() print(“D”) D()   python 支持多继承,但对与经典类和新式类来说,多继承查找的顺序是不一样的。 经典类的搜索方式是按照“从左至右,深度优先”的方式去查找属性。 新式类的搜索方式是采用“广度优先”的方式去查找属性。    

二:魔法方法:

1、何为魔法方法:   Python中,一定要区分开函数和方法的含义; 1.函数:类外部定义的,跟类没有直接关系的;形式: def func(*argv):   2.方法:class内部定义的函数(对象的方法也可以认为是属性);分为两种:     ① python自动产生的(魔法方法):一般形式为 __func__(),python会在对应的时机自动调用该函数;     ② 人为自定义的方法:一般和普通函数没有区别,只是定义在了class中而已   3.方法与函数的区别:     方法可认为是函数的特殊情况;     ① 方法定义在class内部     ② 方法的第一个参数应为 cls(类方法) 或者 self(实例方法)     2、魔法方法汇总: ①.以上所有的魔法方法,君采用__xx__形式(_为双 ““,双下划线) ②.以上魔法方法为Python解释器自动调用,当然也可以手动调用 ③.魔法方法Python解释器自动给出默认的,因此除非需要改变其内部功能,其它时刻刻使用默认魔法方法 ④.魔法方法是针对class而言的,脱离了”类“谈magic_method是没有意义的 ⑤.*argv为可变的参数列表,类似C语言的va(variable argument),注意与指针的区别,python中暂时忘掉指针,因为python的内存机制都是解释器自动完成的

欢迎关注我的其它发布渠道