2
我想实现一个方法,这是必要的使用递归,但每一次,我得到的global name not defined
错误 我的班级是这样的:与方法递归自定义类,全局名称没有定义
class MyClass(object):
def _init_(self, name=None, content=None):
self.name = name
self.content = content
这是一个节点类,名称,它只是一个文本字符串,内容是一个列表的孩子(他们的节点也是如此),被初始化为None
但构建树的结构功能给他们一个空白列表,如果他们没有孩子。该级工作正常,所以做的功能,但如果我尝试recurtion添加方法,他们只是不工作,即使他们的工作只是罚款作为一个独立的功能,即:
def get_nodes(self):
c = []
c.append(self.name)
if self.content != []:
for a in self.content:
c.extend(get_nodes(a))
return c
我知道这是可能的, 我究竟做错了什么?
非常感谢你,这两种方法中的一种工作做这之后就好了(写它作为一个实例方法,我相信被称为),另一种,并且是本例中的funtion,并没有奏效。我一直得到同样的错误,初始化只是一个错字,我在课堂上已经明白了。 – Janbure
@Janbure:我不太明白你的意思。你是说'get_nodes'是一种方法(即在类定义中)还是不是?你打电话过得怎么样?你可以发布一个完整的可运行示例来演示问题吗? – BrenBarn
是的,它是在一个类里面,就像我在操作系统中发布的那个类一样,我不能发布完整的代码,因为它是一个任务,我害怕被复制,我也不想让你人们做我的功课,但看起来就像我发布的那样。我最关心的是为什么它不能像这样调用node.get_nodes()方法,但它确实可以用作纯函数? – Janbure