내가 재귀를 사용할 필요가있는 방법을 구현하기 위해 노력하고있어 정의되지 않은,하지만 때마다, 나는이 같은 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은 효과가 없었습니다. 같은 오류가 계속 발생합니다. init는 오타였습니다. 클래스에서 올바르게 처리했습니다. – Janbure
@ Janbure : 나는 당신이 의미하는 것을 얻지 못합니다. 'get_nodes '가 메소드 (즉, 클래스 정의 내부에 있음)인지 말하지 않습니까? 어떻게 부르니? 문제를 보여주는 완전한 실행 가능한 예제를 게시 할 수 있습니까? – BrenBarn
예, 제가 작전에 게시 한 것과 같은 수업 시간에 있습니다. 전체 코드를 게시 할 수 없기 때문에 임무를위한 것이므로 복사가 두려워요. 나는 당신을 만들고 싶지 않습니다. 사람들은 숙제를해야하지만, 내가 게시 한 것과 같습니다. 가장 큰 관심사는 node.get_nodes()와 같은 메소드로 작동하지 않는 이유이지만 순수한 함수로 작동합니까? – Janbure