[파이썬] Class 변수에 대한 나름의 이해

2023. 10. 5. 16:24파이썬

class node:
    
    number = None
    child_nodes = []
    value = None
    
    def __init__(self, number, value):
        self.number = number
        self.value = value

위와 같이 만들면 child_nodes는 모든 객체에서 공유가 된다.

그래서 이를 바탕으로 다음을 실행하면 무한 재귀가 된다.

    def find_node(self, start_node, target):
        cur_node = start_node
        
        for child_node in cur_node.child_nodes:
            if target == child_node.number:
                return child_node
            return self.find_node(child_node, target)
        
        if cur_node == self.root_node:
            return None