我正在尝试制作一组函数,以便通过一些数据轻松操作。
我面临的问题是:它似乎可以识别并使用父类中的方法,除了一个: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()
方法工作得很好!这就是奇怪的地方。有什么建议吗?
我在Python 2.7中使用treelib
最佳答案
您的方法 show()
调用自身:
def show(self):
self.show(key=lambda x: x.tag, reverse=True, line_type='ascii-em')
在Get
中将其删除,并在Join
中将其更改为:
def show(self):
super(Join, self).show(key=lambda x: x.tag, reverse=True, line_type='ascii-em')
关于python - 派生类无法识别父类方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34500230/