今天面试遇到了,讲不清楚,赶紧来看看
老师,您好! 请问,“继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动。”这段话没有看懂? Python 3多继承下,查找属性或方法的顺序(MRO)应该是C3算法; Python 2多继承下,查找属性或方法的顺序(MRO)应该是DFS或BFS算法;
有一些困惑的地方,希望老师能指点一二。 如您所说,type()函数是可以动态创建类的, 我也就可以理解为type()函数是创建类的模版,由type()函数创造出来的类的类型都属于type, 那新式类的父类object跟type又有什么关系呢?我目前的理解是,object类是所有类的父类。object类的类型是type,不知道对不对。 还有,object类也是由type()函数动态创建的吗?那是否可以理解为object类是type元类的实例?那type的父类又是object类,这是怎么做到的?type元类的类型是type,这又是如何做到的呢?
如果我们通过猴子修补来更改方法的行为,则该方法将不再具有记录的方式。因此,除非每个客户端或用户都知道此更改,否则可能导致他们的代码行为异常; 麻烦解释一下这句:不再具有记录的方式?每个客户端或用户都知道此更改? 谢谢老师了。
老师能否具体解释一下这一段: Tips:不知道你有没有注意到一点:我们在使用 len() 函数获取序列长度的时候语法是 len(seq) , 但是如果对于一个列表进行扩展操作使用的语法是 seq.append() 。这是因为 len() 是 Python 的内置函数(Built-in functions),而 append() 则是内置方法。内置函数对象是对于C函数的外部封装,而内置方法,实际上是内置函数的另一种形式,只不过还包含了一个传入C函数的对象作为隐式的额外参数。max()和min()同上。
慢慢的喜欢上了看书,以前第一想到的就是买视频看。希望老师接下的章节可以带来更大的惊喜。啦啦啦
派森
winfred_wu
_奋斗的小乔