1
我对类继承不是很有经验。请帮我看看下面的代码:Python类继承中缺少方法?
class Handle(STAFHandle):
def __init__(self, HandleName):
handle = STAFHandle.__init__(self, HandleName)
self.initLogger(handle)
def initLogger(self, handle):
self.logger = Logging(handle, 'Test')
handle = Handle('test')
handle.logger.info('test')
它说,提交方法没有定义:
result = handle.submit(system, service, logRequest) AttributeError: 'NoneType' object has no attribute 'submit'
,但如果我将其更改为:
class Handle(STAFHandle):
def __init__(self, HandleName):
handle = STAFHandle.__init__(self, HandleName)
def initLogger(self, handle):
self.logger = Logging(handle, 'Test')
handle = Handle('test')
handle.initLogger(handle)
handle.logger.info('test')
它的工作原理。为什么有差异?非常感谢!!
干杯, 哲
感谢您的建议!其实我先试过这种方式,但后来得到了一个不同的错误: TypeError:super()参数1必须是type,而不是classobj – 2011-01-03 09:20:04
@Zhe:你的基类是“旧式”;它不是从'object'派生的。在新的类型层次结构中,所有类都应该这样做。一旦你改变它,一切都应该工作。 – katrielalex 2011-01-03 23:45:54