在python和__init__中进行子类化:实际示例

时间:2012-09-10 14:06:02

标签: python class inheritance

在python中,我可以这样做:

import mechanize
class MC (object):
      def __init__(self):
          self.Browser = mechanize.Browser()          
          self.Browser.set_handle_equiv(True)
      def open (self,url):
          self.url = url
          self.Browser.open(self.url)

我的问题是:我怎样才能__init__子类中的父类方法(就像这样):

class MC (mechanize.Browser):
      def __init__(self):
          self.Browser.set_handle_equiv(True)

帮助很多!

1 个答案:

答案 0 :(得分:2)

只需直接调用该方法,在初始化期间,您的实例上可以使用基类上的方法:

class MC(mechanize.Browser):
    def __init__(self):
        self.set_handle_equiv(True)

您可能也希望调用基类__init__方法:

class MC(mechanize.Browser):
    def __init__(self):
        mechanize.Browser.__init__(self)
        self.set_handle_equiv(True)

我们需要直接致电__init__,因为Browserold-style python class;在新式python类中,我们使用super(MC, self).__init__()代替super() function提供代理对象,该对象搜索基类层次结构以查找要调用的下一个匹配方法。