Python中的广度优先和深度优先
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的广度优先和深度优先相关的知识,希望对你有一定的参考价值。
Python中分为经典类和新式类:
经典类:
class A():
pass
新式类:
class A(object):
pass
所以经典类和新式类的区别就是,在声明类的时候,新式类需要加上object关键字。
Python中经典类和新式类的区别:
区别主要体现在继承上:
Python的类可以继承多个类,Java和C#中则只能继承一个类
Python的类如果继承了多个类,那么其寻找方法的方式有两种
当类是经典类时,多继承情况下,会按照深度优先方式查找
当类是新式类时,多继承情况下,会按照广度优先方式查找
简单点说就是:经典类是纵向查找,新式类是横向查找
1 经典类: 2 class Life(): 3 def daily(self): 4 print "繁衍" 5 6 class Animal(Life): 7 def daily(self): 8 print "吃" 9 print "喝" 10 print "拉" 11 print "撒" 12 13 class Puru(Life): 14 def __init__(self): 15 pass 16 17 class cat(Puru,Animal): 18 def __init__(self): 19 print "喵喵" 20 21 a = cat() 22 a.daily() 23 24 25 执行结果是: 26 27 喵喵 28 繁衍 29 30 新式类: 31 class Life(object): 32 def daily(self): 33 print "繁衍" 34 35 class Animal(Life): 36 def daily(self): 37 print "吃" 38 print "喝" 39 print "拉" 40 print "撒" 41 42 class Puru(Life): 43 def __init__(self): 44 pass 45 46 class cat(Puru,Animal): 47 def __init__(self): 48 print "喵喵" 49 50 a = cat() 51 a.daily() 52 53 执行结果是: 54 55 喵喵 56 吃 57 喝 58 拉 59 撒
以上是关于Python中的广度优先和深度优先的主要内容,如果未能解决你的问题,请参考以下文章