黑马python教学视频教程黑马python下载38期39期2018吾爱破解
下载地址 https://share.weiyun.com/dHvWwF1o
资料目录 黑马程序员python入门教程19天(美女讲师版) 包含:视频课程-python从0开始学编程(day1-day19) 课件+代码资料-python从0开始学编程(day1-day19) 黑马python基础班代码和课件资料 黑马python就业班代码和课件资料 黑马python基础班视频课程 包含:1-1 Linux基础(119个视频) 1-2 python基础(234个视频) 1-3 面向对象(91个视频) 1-4 项目飞机大战(42个视频) 黑马python就业班视频课程 包含:01 网络编程 02 多任务 03 web服务器v3.1 04 Python高级语法v3.1 05 MySQL数据库v3.1 06 mini-web框架v3.1 07 HTML和CSS 08 首页布局案例和移动布局 09 JavaScriptv 10 jQuery和js库 11 Django框架 12 git版本管理 13 redis数据库 14 天天生鲜Django项目 15 flask框架 16 微信公众号 17 爱家租房项目 18 通用爬虫模块使用 19 MongoDB数据库 20 爬虫scrapy框架及案例 21 数据分析 22 机器学习 23 深度学习 24 数据结构和算法 25 Python网络爬虫 26 机器学习入门篇 27 机器学习入门篇2 28 机器学习提升篇 29 数据挖掘篇 30 深度学习必备原理与实战 31 深度学习必备原理与实战2 32 深度学习必备原理与实战3 33 深度学习必备原理与实战4 34 深度学习项目实战 35 深度学习项目实战2 36 深度学习项目实战3 举例 多重继承 所谓多重继承就是指某一个类所继承的父类,不止一个,而是多个。比如: #!/usr/bin/env python # coding=utf-8 __metaclass__ = type class Person: def eye(self): print "two eyes" def breast(self, n): print "The breast is: ",n class Girl: age = 28 def color(self): print "The girl is white" class HotGirl(Person, Girl): pass if __name__ == "__main__": kong = HotGirl() kong.eye() kong.breast(90) kong.color() print kong.age 在这个程序中,前面有两个类:Person和girl,然后第三个类HotGirl继承了这两个类,注意观察继承方法,就是在类的名字后面的括号中把所继承的两个类的名字写上。但是第三个类中什么方法也没有。 然后实例化类HotGirl,既然继承了上面的两个类,那么那两个类的方法就都能够拿过来使用。保存程序,运行一下看看: $ python 20902.py two eyes The breast is: 90 The girl is white 28 值得注意的是,在类girl中,有一个age=28,在对HotGirl实例化之后,因为继承的原因,这个类属性也被继承到HotGirl中,因此通过实例属性kong.age一样能够得到该数据。 所谓继承,听起来玄乎,实际上没有那么复杂,核心特征是将父类的方法和属性全部承接到子类中;如果子类重写了父类的方法,就使用子类的该方法,父类的方法被遮盖。
多重继承的顺序 学习多重继承的顺序很有必要。比如,如果一个类继承了两个父类,并且两个父类有同样的方法或者属性,那么在实例化子类后,调用哪个父类的方法和属性呢?编造一个没有实际意义,纯粹为了回答这个问题的程序,体会一下多重继承的顺序。 #!/usr/bin/env python # coding=utf-8 class K1(object): def foo(self): print "K1-foo" class K2(object): def foo(self): print "K2-foo" def bar(self): print "K2-bar" class J1(K1, K2): pass class J2(K1, K2): def bar(self): print "J2-bar" class C(J1, J2): pass if __name__ == "__main__": print C.__mro__ m = C() m.foo() m.bar() 这段代码,保存后运行: $ python 20904.py (<class '__main__.C'>, <class '__main__.J1'>, <class '__main__.J2'>, <class '__main__ K1-foo J2-bar 代码中的print C.__mro__是要打印出类的继承顺序。如果要执行foo()方法,首先看J1,没有,看J2,还没有,看J1里面的K1,有了就执行,即C==>J1==>J2==>K1;bar()也是按照这个顺序,在J2中就找到了一个。 这种对继承属性和方法搜索的顺序称之为“广度优先”。 在新式类中,以及python3.x的类中,都是按照“广度优先”原则搜寻属性和方法的。 但是,在旧式类中是按照“深度优先”的顺序的。因为旧式类很少被用到,所以不举例。读者可以自己模仿上面代码,探索旧式类的“深度优先”含义。
|