본문 바로가기
파이썬

파이썬 Python 생성자 및 기본값

by º기록 2020. 10. 14.
반응형

어떻게 든 아래의 Node 클래스에서 wordList adjacencyList 변수는 Node.js의 모든 인스턴스간에 공유됩니다.

>>> class Node:
...     def __init__(self, wordList = [], adjacencyList = []):
...         self.wordList = wordList
...         self.adjacencyList = adjacencyList
... 
>>> a = Node()
>>> b = Node()
>>> a.wordList.append("hahaha")
>>> b.wordList
['hahaha']
>>> b.adjacencyList.append("hoho")
>>> a.adjacencyList
['hoho']

생성자 매개 변수에 대해 기본값 (이 경우에는 빈 목록)을 계속 사용할 수 있지만 a b 모두 자체 를 갖도록 할 수있는 방법이 있습니까? wordList adjacencyList 변수?

파이썬 3.1.2를 사용하고 있습니다.

 

해결 방법

 

변경 가능한 기본 인수는 일반적으로 원하는 것을 수행하지 않습니다. 대신 다음을 시도하십시오.

class Node:
     def __init__(self, wordList=None, adjacencyList=None):
        if wordList is None:
            self.wordList = []
        else:
             self.wordList = wordList 
        if adjacencyList is None:
            self.adjacencyList = []
        else:
             self.adjacencyList = adjacencyList 

 

참조 페이지 https://stackoverflow.com/questions/4841782

 

 

반응형

댓글