我正試圖使一組函數能夠通過一些數據輕鬆操作。 我面臨的問題是:它似乎識別和使用父類的方法,除了一個:show()
,給我錯誤約意外的論據。派生類不能識別來自父類的方法的參數
這裏的類的一個示例:
from treelib import Tree, Node
class Join(Tree):
def __init__(self, id, desc, childs=(), *args, **kwargs):
Tree.__init__(self, *args, **kwargs)
self.id = id
self.desc = desc
self.value = None
self.parent = None
self.childs = None
self.create_node(tag=desc, identifier=id)
for i in childs:
self.paste(self.id, i)
def getSons(self):
sons = self.children(self.id)
return sons
def getID(self):
return self.id
def getDesc(self):
return self.desc
def show(self):
self.show(key=lambda x: x.tag, reverse=True, line_type='ascii-em')
class Get(Tree):
def __init__(self, id, desc, primitive, *args, **kwargs):
Tree.__init__(self, *args, **kwargs)
self.id = id
self.desc = desc
self.parent = None
self.primitive = primitive
self.create_node(tag=desc, identifier=id, data=primitive)
def getID(self):
return self.id
def getDesc(self):
return self.desc
def show(self):
self.show(key=lambda x: x.tag, reverse=True, line_type='ascii-em')
class Primitive():
def __init__(self, value):
self.value = value
def getValue(self):
return self.value
def show(self):
pass
#print '\t -> ' + str(self.value)
如果,例如,我做這在其他的.py
prim = Primitive(0)
get1 = Get("get1", "Some random thing", prim)
get1.show()
它告訴我,key
是一個意外的說法。我甚至查庫的.py文件,該說法有:
def show(self, nid=None, level=ROOT, idhidden=True, filter=None,
key=None, reverse=False, line_type='ascii-ex'):
的create_node()
方法工作得很好!這是奇怪的。有什麼建議麼?
我在使用treelib
的Python 2.7
'樹.__ init __(self,* args,** kwargs)'應該是'super(Join,self).__ init __(* args,** kwarg s)' – karthikr
之前嘗試過,結果相同。有和沒有'自己'... – edwardffs
另外,超級調用應該是所有的邏輯(init方法的最後一行) – karthikr