我有一个类,它代表一个树状结构的节点,它存储它的父节点和任何子节点
class Node:
def __init__(self,n, p):
self.name = n
self.parent = p
self.children = []
if p != None:
p.addChild(self)
def setParent(np):
if np != None:
self.parent = np
def addChild(nc):
if nc != None:
children.append(nc)
出于自动化的目的,在创建节点时,我希望它调用父节点的addChild
方法将自身添加到子列表中,但就像用父节点以这种方式初始化节点一样,我会得到错误:
TypeError: addChild() takes exactly 1 argument (2 given)
它是如何从self
获得2个参数的?或许有更合乎逻辑的方法来处理这个问题?在
当你说
Python将像这样调用
^{pr2}$addChild
因为}是实例方法。因此,它们需要接受作为第一个参数调用的当前对象
addChild
和{您需要使
self
成为类方法的第一个参数。在你也应该明确地阅读这个:http://docs.python.org/2/tutorial/classes.html
相关问题 更多 >
编程相关推荐