采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,这个类的父类是object,所以super(RandomUserAgentMiddleware)._init_()方法在这起到了什么作用呢?
这个属于python的基础知识,super方法准确的说不是调用父类,而是沿着mro的顺序去查找下一个类的方法,因为mro算法具体的内容比较多。你可以百度一下python的mro算法
我大概知道了,我们可以通过类的mro方法来查看MRO列表。 如果我们直接查看RandomUserAgentMiddleware.mro(), 那么MRO列表只有两个元素,一个是它本身,一个是object类,这个时候super方法其实是没有作用的。 但是如果RandomUserAgentMiddleware是某个类(假设类A)多个父类中的一个,那么当类A对象调用到RandomUserAgentMiddleware中的__init__方法时,此时只要不是处于MRO列表的倒数第二个位置(到数第一是object类),super方法就会根据MRO列表去调用下一个元素中的__init__方法。
是的,
非常感谢!
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.8k 30
2.5k 18
1.1k 18
1.4k 15
2.8k 15