python 类继承 父类初始化_【已解决】Python中继承父类如何重写__init__以自定义初始化...

折腾:

期间,需要去pyspider中,继承ResultWorker,然后要自定义初始化__init__

用:class AutohomeResultWorker(ResultWorker):

mysqldb = None

def __init__(self, resultdb, inqueue):

"""init mysql db"""

print("AutohomeResultWorker init")

print("resultdb=%s, inqueue=%s" % (resultdb, inqueue))

#super.__init__(self, resultdb, inqueue)

super.__init__(resultdb, inqueue)

if self.mysqldb is None:

self.mysqldb = MysqlDb()

print("self.mysqldb=%s" % self.mysqldb)

结果:

super.__init__(resultdb, inqueue)

TypeError: descriptor ‘__init__’ requires a ‘super’ object but received a ‘ResultDB’

用:def __init__(self, resultdb, inqueue):

"""init mysql db"""

print("AutohomeResultWorker init")

print("resultdb=%s, inqueue=%s" % (resultdb, inqueue))

super.__init__(self, resultdb, inqueue)

结果:

super.__init__(self, resultdb, inqueue)

TypeError: descriptor ‘__init__’ requires a ‘super’ object but received a ‘AutohomeResultWorker’

python override __init__class Super(object):

def __init__(self, arg):

self._state = "Not OK"

self.super_set_up(arg)

self._state = "OK"

def super_set_up(self, arg):

"Do some set up"

class Sub(Super):

def __init__(self, arg):

Super.__init__(self, arg)

self.sub_set_up(self, arg)

self.important_state = "OK"

def sub_set_up(self, arg):

"Do some more set up"

【总结】from pyspider.result import ResultWorker

class AutohomeResultWorker(ResultWorker):

def __init__(self, resultdb, inqueue):

"""init mysql db"""

print("AutohomeResultWorker init")

print("resultdb=%s, inqueue=%s" % (resultdb, inqueue))

ResultWorker.__init__(self, resultdb, inqueue)

# print("self.mysqldb=%s" % (self.mysqldb))

# if self.mysqldb is None:

self.mysqldb = MysqlDb()

print("self.mysqldb=%s" % self.mysqldb)

好像就可以实现继承了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值